У меня есть функция, которая принимает токен, декодирует его и использует полезную нагрузку для выполнения некоторой логики.Я хотел бы сгенерировать токены с утверждениями, которыми я управляю для проверки этой функции.
Я сгенерировал пару ключей из https://mkjwk.org/ и использовал ее следующим образом:
from jose import jwt
claims = {"hello": "world"}
key = {
"kty": "RSA",
"d": "RSjC9hfDtq2G3hQJFBI08hu3CJ6hRRlhs-u9nMFhdSpqhWFPK3LuLVSWPxG9lN7NQ963_7AturR9YoEvjXjCMZFEEqewNQNq31v0zgh9k5XFdz1CiVSLdHo7VQjuJB6imLCF266TUFvZwQ4Gs1uq6I6GCVRoenSe9ZsWleYF--E",
"e": "AQAB",
"use": "sig",
"kid": "1234567890",
"alg": "RS256",
"n": "thBvC_I9NciW6XqTxUFMZaVVpvGx6BvLHd3v8Visk_6OoDCVXF_6vNktNi6W7CBkuHBqGyuF0wDFrHcZuZq_kLKI6IRofEzKyUoReOyYRlPt5ar64oDO-4mwH47fb99ILW94_8RpQHy74hCnfv7d888YaCmta9iOBOvggcvxb5s"
}
token = jwt.encode(
{"hello": "world"},
key,
algorithm="RS256",
)
jwt.decode(token, key, algorithms="RS256") == claims
выше дает мне jose.exceptions.JWTError: Signature verification failed.
ошибка.
Почему это?Как я могу сгенерировать токен, который я могу правильно декодировать с моими желаемыми заявлениями?