使用ID从Cognito检索用户信息

时间:2018-10-18 11:39:40

标签: aws-sdk amazon-cognito

我正在尝试使用AWS服务构建一个简单的博客以进行自我教育。

我正在使用Amazon Cognito登录用户。每个用户都有一个昵称。我希望用户能够将文章发布到我的博客中。

为了存储文章,我正在使用DynamoDB。这是文章项目的示例:

{
  "ArticleID": "MyUniqueID",
  "title": "My Hello World Article",
  "content": "This is the content of the article",
  "author": "26a16b31-b2c0-4cf3-89f9-d5dcfd56d530" // Cognito User ID.
}

我正在使用无服务器框架和lambda函数来创建REST API,以从数据库中检索文档。

现在,我想在我博客的文章页面上显示作者的昵称。因此,我必须在某个地方检索26a16b31-b2c0-4cf3-89f9-d5dcfd56d530用户的昵称。

我该怎么做?

我想像的可能性:

  • 使用Cognito Sync API以便将用户信息存储在DynamoDB表中,并将端点添加到我的API中以获取这些项。
  • 不要使用cognito的属性并创建“ UserProfile”外部服务
  • 在我的API上创建一个终端节点以检索用户的公共资料(lambda函数将查询Amazon Cognito API并从私有属性中过滤公共对象。)

您将如何做?最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

我最近使用Cognito作为身份验证创建了一个无服务器应用程序,并且正在使用您提到的第二个选项。它不仅使数据一致,而且更易于获取。

如果在UserPool中保留属性,则就像管理第三方API来获取其数据一样,而第三方可能仅用于身份验证。 您始终可以将用户数据保留在本地存储会话中。

与其说是最佳实践,不如说是一项架构决定。