AWS Cognito:为什么能够解码访问令牌但刷新令牌解码为不可读的字符串?

AWS Cognito: why is access token able to be decoded but the refresh token decodes to unreadable strings?

我正在为我的 Web 应用程序使用 AWS Cognito。

我登录到我的网络应用程序并从浏览器开发模式获取访问/刷新令牌。

访问令牌可以在 https://jwt.io/:

上解码

header是

{
  "kid": "M+aYDxi5AeOrvlUkPyNA5GmA4V8ZdTPPnr5wO6M1neU=",
  "alg": "RS256"
}

有效载荷是:

{
  "origin_jti": "0cf3100a-bfdd-49e0-bae3-12345678",
  "sub": "1585d704-2985-4447-b265-12345678",
  "event_id": "ead55f68-59d0-4b7f-9bb8-123",
  "token_use": "access",
  "scope": "aws.cognito.signin.user.admin",
  "auth_time": 1646640361,
  "iss": "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_123",
  "exp": 1646640661,
  "iat": 1646640361,
  "jti": "ea239510-8fd4-497d-b2ac-05a0377d63ef",
  "client_id": "123qwe",
  "username": "staff"
}

但是,刷新令牌未正确解码: header:

{
  "cty": "JWT",
  "enc": "A256GCM",
  "alg": "RSA-OAEP"
}

有效载荷是:

"v�zsV_%������$��\u0014���1��Z�c���hyE�\u0000�\u0001�9W����G�5���\n\nҴ�\t!8Mc\u0000~3}K�4��X=\"�%\u0015�2�\"S,��M��\u0000=S�\u0011r�*H9�}\u0002��t]�xU'�Lk��N\n�xB�Yg�`�m�\n�_�ey��j�o���_�lJ�e^�h\n=�\u001a�V7�!�]�5A\u0014\u0012(3��i(mu���\u0018�c�Y���ׁ��.VC��3�yk6��$b�X�5�C�Q�/���)���=\u001b|a�\u000b\f�\u0015/\u0005\u00057����aߨ`�B�.�\u000f�(]�\�\u0007G�"

刷新令牌的算法似乎是 RSA-OAEPhttps://jwt.io/ 站点尚不支持该算法。

有没有可以正确解码刷新令牌的在线工具?

刷新令牌负载已加密,因为它不适合您。它的内容仅供授权服务器使用,授权服务器可以对其进行解密。当您的访问令牌过期时,您只能使用刷新令牌请求新的访问令牌。

您可以在 the AWS docs, and get an overview of how they work on the OAuth site 中了解如何使用刷新令牌。