Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda Cognito访问_Amazon Web Services_Lambda_Amazon Cognito - Fatal编程技术网

Amazon web services AWS Lambda Cognito访问

Amazon web services AWS Lambda Cognito访问,amazon-web-services,lambda,amazon-cognito,Amazon Web Services,Lambda,Amazon Cognito,有没有办法在lambda函数中获取cognito用户对象? 我的客户端已经发送了标识,我有context.identity.cognitoIdentityId,但我没有找到任何方法将其“转换”为有效的用户对象 例如,如果我想知道经过身份验证的用户用户名、电子邮件地址或其他cognito属性,那么正确的方法是什么 这个标识符ID是用户的唯一标识符吗?我的意思是,如果用户注册了他们的fb帐户,然后连接了他们的twitter帐户,那么身份id仍然存在?还是有新的?如果是新的,我如何将旧id“连接”到新

有没有办法在lambda函数中获取cognito用户对象? 我的客户端已经发送了标识,我有
context.identity.cognitoIdentityId
,但我没有找到任何方法将其“转换”为有效的用户对象

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

这个标识符ID是用户的唯一标识符吗?我的意思是,如果用户注册了他们的fb帐户,然后连接了他们的twitter帐户,那么身份id仍然存在?还是有新的?如果是新的,我如何将旧id“连接”到新id

谢谢


b0c1

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

如果您将Lambda与API网关连接在一起,那么您可以直接使用Cognito用户池Id令牌和Cognito Authorizer选项来验证请求,并且Id令牌中的所有声明都将与上下文一起传递。细节

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

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

如果您以前从未链接过任何一个帐户,您将获得一个新id;如果您以前链接过任何一个帐户,则身份将合并,您将获得其中一个。

因此,使用cognito对联邦身份进行身份验证,并通过API网关调用Lambda以解析真实身份?