将DynamoDB项映射到Cognito用户池对象

时间:2017-07-22 18:15:11

标签: amazon-dynamodb federated-identity aws-cognito

我正在研究Cognito用户池,联合身份和DynamoDB。为了实现细粒度的访问控制,我必须在DynamoDB表中使用Cognito Identity Id,因为在IAM策略中无法引用用户池中的任何内容。值得一提的是${cognito-identity.amazonaws.com:sub}指的是身份ID,而不是我们在Cognito用户池中看到的“sub”。

问题是如何将DynamoDB中的项目映射到用户联系人?

例如,考虑一个场景,如果我的应用程序的用户有待付款,并且我必须就付款与他联系。或者,如果用户报告了问题,我必须查找他的数据以进行典型的客户支持。

1 个答案:

答案 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'

从AWS文档中: https://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-android-sdk.html