首页 > 解决方案 > AWS Cognito 是否消除了我的数据库中对“用户”表的需求?

问题描述

使用 AWS Cognito 进行身份验证是否意味着我的数据库中不再需要传统的“用户”表?

目前,我继承的应用程序具有我使用 sql 查询引用的传统“用户”表,用于查找与组织、留言板等表的多对多和多对一连接。

我是查询 Cognito 用户组(感觉不对)还是有一些“同步”方法可以在我的数据库中更新“用户”表。

阅读文档和观看一些教程很棒,但没有人能做的不仅仅是验证。授权在哪里,获取用户名,包含连接查询的电子邮件。

温柔一点,试着和房间里的新宝宝一起工作和学习

标签: amazon-web-servicesamazon-cognito

解决方案


我的经验是它并没有淘汰对用户表的需求,原因有几个。

  1. 在使用 Cognito 作为主要用户数据存储时调用 Cognito getUser/listUser 方法时,我经常会遇到 AWS 限制错误。AWS 支持会增加我们账户的 API 限制,但我一直担心它们会再次出现。
  2. 您基本上仅限于通过用户名/电子邮件/电话查询用户。listUser 方法对于搜索非常有限
  3. 如果您想存储其他用户数据,则必须将它们放入自定义 Cognito 属性中并快速管理那些令人厌烦的

我最终的设计是在 Cognito 用户池上设置一个确认后触发器,并在用户注册时让它将所有用户数据复制到关系数据库或 DynamoDB 中。users 表的主键是 Cognito 用户名,因此如有必要,我可以在数据库和 Cognito 中查找用户。基本上我只是使用 Cognito 进行身份验证,而不是作为主要用户数据库


推荐阅读