相关疑难解决方法(0)

使用Cognito的AWS Lambda API网关 - 如何使用IdentityId访问和更新UserPool属性?

好吧,我现在已经进入了这个阶段并取得了重大进展,但仍然完全被基本面所困扰.

我的应用程序使用Cognito用户池来创建和管理用户 - 这些在S3上通过IdentityId标识.我的每个用户都有自己的S3文件夹,AWS会自动为他们提供一个等于用户IdentityId的文件夹名称.

我需要将IdentityId与其他Cognito用户信息相关联,但无法确定如何使用.

我需要的关键是能够识别用户名以及给定IdentityId的其他cognito用户属性 - 而且这非常困难.

因此,第一场战斗是在Cognito用户通过AWS API Gateway发出请求时,弄清楚如何获取IdentityId.最后我得到了解决方案,现在我有一个Cognito用户,他向API网关发出请求,而我后面的Lambda函数现在有了IdentityId.那一点有效.

但我完全不知道如何访问存储在用户池中的Cognito用户信息.我找不到任何明确的信息,当然也没有代码,它显示了如何使用IdentityId来获取Cognito用户的属性,用户名等.

看来,如果我使用"Cognito用户池"在API网关中授权我的方法,那么可以使用正文映射模板将Cognito用户信息(例如sub,用户名和电子邮件地址)放入上下文中,但我可以没有得到IdentityId.

但是如果我AWS_IAM在API网关中使用授权我的方法,那么身体映射模板会反过来 - 它为我提供了IdentityId而不是Cognito用户字段,例如sub和username以及email.

这让我发疯了 - 如何将IdentityId和所有Cognito用户字段和属性合并为一个数据结构?事实上,我似乎只能得到一个或另一个是没有意义的.

amazon-cognito aws-lambda aws-api-gateway

33
推荐指数
1
解决办法
6658
查看次数