【问题标题】:AWS Lambda Cognito accessAWS Lambda Cognito 访问
【发布时间】:2017-02-20 19:26:08
【问题描述】:

有什么方法可以在 lambda 函数中获取 cognito 用户对象? 我的客户已经发送了身份并且我有context.identity.cognitoIdentityId,但我没有找到任何方法将其“转换”为有效的用户对象。

例如,如果我想知道经过身份验证的用户用户名、电子邮件地址或其他认知属性,那么获取它的正确方法是什么?

这个identityId是用户的唯一标识符吗?我的意思是,如果用户使用他们的 fb 帐户注册,然后连接他们的 twitter 帐户,那么身份 ID 是否仍然存在?还是有新的?如果它是新的,我怎样才能将旧的 id 连接到新的?

谢谢

b0c1

【问题讨论】:

    标签: amazon-web-services lambda amazon-cognito


    【解决方案1】:

    原始用户名/电子邮件不会跨越联合边界,因此如果您通过 Cognito 联合身份将 Cognito 用户池 Id 令牌交换为 AWS 凭证,则 Id 令牌中的所有声明都将丢失。

    如果您将 Lambda 与 API 网关一起使用,您可以直接使用 Cognito 用户池 Id 令牌和 Cognito Authorizer 选项来验证请求,并且来自 id 令牌的所有声明都将与上下文一起传递。详情here.

    不幸的是,听起来您正试图将多个提供商链接到同一个身份,除非您使用联合身份,否则您无法做到这一点。但是要回答您关于如何在 Federated Identity 中将两个身份提供者帐户链接在一起的问题,如果您在登录映射中同时传递两个令牌,它将链接两个身份。

    "graph.facebook.com":"facebookToken"
    "accounts.google.com":"googleToken"
    

    如果您之前从未关联过任何一个帐户,您将获得一个新的 ID,如果您之前已关联过任何一个,则身份将合并,您将获得一个或另一个。

    【讨论】:

    • 那么使用 cognito 以联邦身份进行身份验证,并通过 API Gateway 调用 Lambda 来解析真实身份?
    猜你喜欢
    • 2019-11-25
    • 2018-04-01
    • 1970-01-01
    • 2020-06-04
    • 2018-04-03
    • 2019-09-21
    • 2019-06-12
    • 2017-03-21
    相关资源
    最近更新 更多