【问题标题】:Include user details in AWS Cognito Oauth2 token在 AWS Cognito Oauth2 令牌中包含用户详细信息
【发布时间】:2019-12-01 17:31:39
【问题描述】:

我将 AWS cognito 与 NodeJS 后端 API 结合使用,并希望在从 /oauth2/token 端点返回的访问令牌中包含用户详细信息,范围在用户池客户端应用程序中定义。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      Amazon Cognito 在成功验证后返回多个令牌:一个 ID 令牌、一个访问令牌和可选的刷新令牌。

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

      ID Token 包含一些 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

      【讨论】:

      • 感谢您的回答,是否建议在后端应用程序中使用 AWS amplify
      • AWS amplify 是一个命令行工具和客户端库,可让前端开发人员的生活更轻松。它简化了云基础架构的配置。因此,如果您是全栈开发人员并且您的项目是前端驱动的,我建议您使用 AWS Amplify。如果您的项目是由后端驱动的,或者您不是前端开发团队的一员,请查看 SAM
      • 如果我采用后端方法,是否可以使用 Google 或 Facebook 对用户进行身份验证?如果是,请您解释正确的方法。
      • 当然可以。有大量的博客文章解释了如何做到这一点。这个例如medium.com/@jameshamann/…
      猜你喜欢
      • 2017-10-11
      • 2016-05-05
      • 2016-08-01
      • 2016-06-02
      • 1970-01-01
      • 2016-12-31
      • 2019-02-28
      • 2017-08-04
      • 2016-11-29
      相关资源
      最近更新 更多