Как определяется срок жизни JWT-токена
Python
Middle
Без компании
Как определяется срок жизни JWT-токена
Ответы
Срок жизни JWT-токена определяется полем `exp` (expiration time) в payload-части токена. Это UNIX-временная метка, после которой токен считается недействительным.
Пример payload с `exp`:
```
{
"sub": "1234567890",
"name": "John Doe",
"exp": 1735689600 // 1 января 2025 года
}
```
Важные нюансы:
- Сервер должен проверять `exp` при каждом запросе
- Рекомендуется устанавливать разумный срок (часы/дни, не годы)
- Для обновления токенов используют refresh-токены с более длительным сроком
- Клиент может хранить токен, но сервер решает его валидность
Пример проверки на Python (PyJWT):
```
import jwt
from datetime import datetime, timedelta
# Создание токена
payload = {
'exp': datetime.utcnow() + timedelta(hours=1)
}
token = jwt.encode(payload, 'secret', algorithm='HS256')
# Проверка
try:
jwt.decode(token, 'secret', algorithms=['HS256'])
except jwt.ExpiredSignatureError:
print("Token expired")
```