我一直在尝试验证 Amazon Cognito 身份提供商通过他们的 boto3 python 客户端返回的“刷新 token ”。我一直在使用验证器 https://jwt.io .
当我将刷新 token 粘贴到“编码”框中时,它返回一个标题:
{
"cty": "JWT",
"enc": "A256GCM",
"alg": "RSA-OAEP"
}
但该工具还在底部显示“无效签名”。
我想知道这是否是预期的行为? AWS Cognito 刷新 token 是否不是有效的 JWT?
最佳答案
是的,使用此 header ,刷新 token 似乎是有效的 JWT。
https://jwt.io无法解析它,因为它仅限于签名的 JWT (JWS - RFC7515 ),而这个是加密的 (JWE - RFC7516 )。
与 JWS 不同的是,JWE 由 5 个用点分隔的部分组成。它的头可以被解析,但有效载荷是加密的,没有私钥或共享 key 就无法读取。
根据cty
header ,此 token 包含另一个 JWT,它肯定是 JWS。这个嵌套的 token 允许两个世界:签名和加密声明。
关于amazon-web-services - Cognito 刷新 token 是 "valid"JSON Web token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60422993/