在AWS Cognito Oauth2令牌中包含用户详细信息

时间:2019-07-23 15:57:12

标签: node.js amazon-web-services amazon-cognito

我正在使用带有NodeJS后端API的AWS Cognito,并希望在用户令牌客户端应用程序中定义的范围的 / oauth2 / token 端点的访问令牌返回中包含用户详细信息。< / p>

此外,如果我使用 adminInitiateAuth API,则无法将范围包含在返回访问令牌中。那么是否可以在一个访问令牌中同时包含用户详细信息和范围?

2 个答案:

答案 0 :(得分:0)

Amazon Cognito返回多个令牌,以成功实现自动认证:一个ID令牌,一个访问令牌,以及一个可选的刷新令牌。

问题1:令牌中的用户详细信息

ID令牌包含一些PII详细信息,例如使用名称和电子邮件地址。

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

使用AWS amplify时,可以使用Auth.currentAuthenticatedUser()从Cognito检索用户详细信息

https://aws-amplify.github.io/docs/js/authentication

问题2:adminInitiateAuth

当前不支持此功能 https://github.com/aws-amplify/aws-sdk-android/issues/477

答案 1 :(得分:0)

Cognito不支持访问令牌中的自定义声明,我认为这是一个非常好的设计选择。

您可以通过声明缓存以更加可扩展的方式在API和UI中相当轻松地管理额外/自定义数据: https://authguidance.com/2017/10/03/api-tokens-claims/

我的一个节点样本在这里执行此操作: https://github.com/gary-archer/authguidance.websample2

这是一种通常由API网关(例如AWS)实现的模式: https://authguidance.com/2018/12/16/serverless-api-deployment/