Python
Требования
Чтобы иметь возможность декодировать токен JWT с помощью Python, необходимо установить пакет PyJWT.
Лучший способ установить его - через менеджер пакетов pip:
$ pip3 install pyjwtИспользование PyJWT
Во-первых, необходимо импортировать пакет PyJWT:
import jwtВо-вторых, необходимо прочитать и сохранить публичный ключ (используемый для расшифровки токена). Нужно заранее получить его заранее и хранить рядом с проектом (в данном случае ./keys/id_rsa.pub).
# Choose a place to store a public key
pub_key_path = '.keys/id_rsa.pub'
with open(pub_key_path, mode='rb') as public_file:
PUBLIC_KEY = public_file.read()Теперь публичный ключ хранится в переменной PUBLIC_KEY.
Далее необходимо реализовать функцию для проверки токена:
def verify_jwt(jwt_token):
try:
return jwt.decode(jwt_token, PUBLIC_KEY, algorithms='RS256')
except:
return NoneЭта функция содержит две основные ветви: токен действителен или нет.
В блоке try выполняется попытка проверить токен. Если токен действителен, то функция verify_jwt вернет его JSON-значение. Если токен неверен или истек срок действия, verify_jwt возвращает None.
Чтобы использовать эту функцию, следует передать ей токен JWT.
jwt_token - это токен, который был получен в запросе. Пример токена:
Результат
Если токен правильный и срок его действия не истек, после использования jwt_verify будет получен декодированную структуру JWT:
Результат проверки бот/не бот можно получить из поля result.
Last updated
Was this helpful?