Чтобы иметь возможность декодировать токен JWT с помощью Python, необходимо установить пакет PyJWT.
Лучший способ установить его - через менеджер пакетов pip:
$pip3installpyjwt
Использование PyJWT
Во-первых, необходимо импортировать пакет PyJWT:
import jwt
Во-вторых, необходимо прочитать и сохранить публичный ключ (используемый для расшифровки токена). Нужно заранее получить его заранее и хранить рядом с проектом (в данном случае ./keys/id_rsa.pub).
# Choose a place to store a public keypub_key_path ='.keys/id_rsa.pub'withopen(pub_key_path, mode='rb')as public_file: PUBLIC_KEY = public_file.read()
Теперь публичный ключ хранится в переменной PUBLIC_KEY.
Далее необходимо реализовать функцию для проверки токена:
Эта функция содержит две основные ветви: токен действителен или нет.
В блоке try выполняется попытка проверить токен. Если токен действителен, то функция verify_jwt вернет его JSON-значение. Если токен неверен или истек срок действия, verify_jwt возвращает None.
Чтобы использовать эту функцию, следует передать ей токен JWT.
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvt9ZrQP23A06ZLaOLoXtY2NYLkaAO+UyJG7S6WPD4ue49flkzNEKYlTKdk3L9HzMNeQZTqT+Bn310E/u/yOci8yY8GUBNb+kuH1VM2EAl7MPY41eX+tZe/wy0OWvrnhj1H5V5aXt8hISbIZLmgtUQWNINn/xsrn8EIETxbHiEVAXZoVXQYddiw+EY6uD/GRPCLNVr4gx43Yfcx+jSACotoy2hmK8v6N5VmLs+AOILf4INfE8MnzAJt8PD5T5CEVPO82+qj67E9Y40tQnyWpZ028QOerFnqRNRoa0+Fh5xXE+lExP8gRq47cUmWLAkCpUpNvFyStkr56SWrE/NZgCx"
result =verify_jwt(jwt_token)
jwt_token - это токен, который был получен в запросе. Пример токена: