Cognito令牌权限相关问题

0

【以下的问题经过翻译处理】 我正在使用Amazon Cognito,并且有一个问题,例如:如果我正在使用服务器端应用程序(授权码授予流程)并且用户在应用程序中登录,那么Cognito将发送id令牌和访问令牌。使用这些令牌,应用程序可以访问某些资源,但是我的问题是: 我们可以在我的服务器端应用程序中检查令牌吗?也就是说,我们可以在服务器端应用程序回答请求之前检查令牌是否正确格式化、签名和具有正确的声明吗?而且我们每次请求都必须做所有这些吗?谢谢

profile picture
专家
已提问 5 个月前5 查看次数
1 回答
0

【以下的回答经过翻译处理】 我可以确认,在服务器端应用程序上验证JWT令牌是可能的,而且实际上是推荐的、必要的步骤,以确保服务器信任的JWT令牌实际上是有效的令牌。在允许JWT令牌访问您的受保护资源之前,应执行以下检查:

  1. 确认JWT令牌的结构(即,它包括三个部分:头部、载荷和签名)。
  2. 验证JWT签名。
  3. 验证声明(例如,令牌未过期(exp)、具有正确的发行者(iss)等)。

此外,必须在每个请求上执行上述JWT检查,即每当您的服务器使用JWT令牌回答请求并返回一些受保护的/安全的数据时。

有关验证Cognito发布的JWT令牌的更多详细信息,请参阅以下文档链接: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html

请注意,由于JWT令牌是一个独立实体,因此可以在服务器本身上验证JWT令牌(无需通过任何端点与Cognito服务交互),使用任何JWT验证库。例如,如果在服务器上使用Node.js,则可以使用GitHub上提供的“aws-jwt-verify”库: https://github.com/awslabs/aws-jwt-verify

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则