amazon-web-services - Cognito 刷新 token 是 "valid"JSON Web token 吗?

标签 amazon-web-services jwt amazon-cognito

我一直在尝试验证 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/

相关文章:

amazon-web-services - 您请求的无服务器引擎模式目前在 5.7 (2.07.1) 中不可用

codeigniter - 将 AWS SDK 作为库集成到 Codeigniter 中

amazon-web-services - AWS cognito 忘记密码流程

node.js - Nodejs API - 使用 Passport JWT 策略进行身份验证与 jsonwebtoken

使用多个设备的 iOS AWS Cognito 身份验证

amazon-web-services - 如何通过 EC2 上托管的静态站点将文件上传到 s3?

node.js - 将不同的域指向单个 EC2 实例上的不同 Docker 容器?

mysql - 使用 SSL 443 而不是 3306 访问 rds MySql 数据库

java - Spring使用JWT身份验证,获取当前用户

django - 在 cookie 中设置 Django REST Framework JWT