AWS Cognito是否消除了数据库中对“用户”表的需要?

时间:2019-01-30 11:22:13

标签: amazon-web-services amazon-cognito

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

目前,我继承的应用具有传统的“用户”表,我通过sql查询引用该表,以查找组织,留言板等表的多对多和多对一联接。

我是否查询Cognito用户组(感觉不对),或者是否有某种“同步”方法在数据库中具有更新的“用户”表。

阅读文档并观看一些教程非常棒,但是除了认证之外,没有人可以做更多的事情。授权在哪里,并获得用户名,带有联接查询的电子邮件。

要谦虚,尝试和房间里的新婴儿一起学习和学习

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

您当然可以使用Cognito用户池服务来管理身份验证,而不是使用“用户”表来管理身份验证,但这不是必须的。您还可以集成其他身份提供者,并使用Twitter,Amazon等甚至您自己的数据库登录。使用Cognito用户池的好处是您不必对身份验证流进行编码,因为身份验证流是由服务正确安全地实现的。

最好的密码和婴儿!