Как понять рабочий ли JWT-токен
Python
Senior
Без компании
Как понять рабочий ли JWT-токен
Ответы
Проверить работоспособность JWT-токена можно несколькими способами:
- **Проверка структуры**: JWT состоит из 3 частей (header, payload, signature), разделенных точками. Пример валидного токена:
```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```
- **Декодирование payload** (без проверки подписи):
```
import jwt
decoded = jwt.decode(token, options={"verify_signature": False})
print(decoded)
```
- **Проверка подписи** (если известен секретный ключ):
```
try:
jwt.decode(token, "secret_key", algorithms=["HS256"])
print("Token is valid")
except jwt.exceptions.InvalidSignatureError:
print("Invalid signature")
```
- **Проверка срока действия**:
```
from jwt.exceptions import ExpiredSignatureError
try:
jwt.decode(token, "secret_key", algorithms=["HS256"])
except ExpiredSignatureError:
print("Token expired")
```
Также можно использовать онлайн-валидаторы типа jwt.io, но только для тестовых токенов, не содержащих чувствительных данных.