我正在研究Cognito用户池,联合身份和DynamoDB。为了实现细粒度的访问控制,我必须在DynamoDB表中使用Cognito Identity Id,因为在IAM策略中无法引用用户池中的任何内容。值得一提的是${cognito-identity.amazonaws.com:sub}
指的是身份ID,而不是我们在Cognito用户池中看到的“sub”。
问题是如何将DynamoDB中的项目映射到用户联系人?
例如,考虑一个场景,如果我的应用程序的用户有待付款,并且我必须就付款与他联系。或者,如果用户报告了问题,我必须查找他的数据以进行典型的客户支持。
答案 0 :(得分:0)
由于您已经可以使用其唯一的Cognito身份ID从数据库中获取应用程序用户的数据,因此剩下的就是获取用户的电子邮件地址。您可以通过以下两种方式进行操作。我将以Android为例。
您可以解析电子邮件属性的JWT id令牌。有关详细信息,请参见此Stack Overflow答案:
Parse JWT token payload data to get certain value in android/java
或者,您也可以这样:
position_links = []
position_links = json.loads(position_links.json)
AttributeError: 'list' object has no attribute 'json'