我想集成一个非常标准的功能:给用户(移动和网络)选项以使用RBAC的电子邮件/密码或Facebook(google)帐户登录(不同的用户可能具有不同的角色,例如用户,主持人,管理员,创建者等)。这基本上就是我想要登录的内容:
我阅读了许多AWS教程和其他材料。我对如何实现它有所了解,但是我仍然没有一个完整的画面。希望有人可以在这里帮助我。
这是我目前的理解(请在错误之处纠正我)。
1)对于电子邮件/密码注册/登录,我使用用户池。当用户登录时,我调用authenticateUser(我使用的是JS SDK):
cognitoUser.authenticateUser(authenticationDetails, {
..
})
哪里成功
2)对于Facebook登录,我使用联合身份
Q1。注册/登录逻辑是否有效且相当完整?我想念什么吗?
Q2。我应该如何存储Facebook用户?我可以在用户池中这样做吗?我觉得这是不可能的,但这意味着我有2个不同的用户目录:一个在UserPool中,另一个在另一个地方(在DynamoDB中说)
Q3。如果我必须将用户存储在不同的位置(UserPool和DynamoDB),这意味着我实际上有2个用户,其中一个用户首先注册了电子邮件/密码,然后决定使用facebook-这对于我作为应用程序管理员和用户来说都是不便的。如何处理这种情况?
Q4。如何为使用Facebook令牌登录的用户(如用户,主持人,管理员,创建者等)管理群组?
Q5。对于Facebook登录用户,我应如何限制对AWS以外资源的访问?
Q6。有什么可行的例子吗?
谢谢!
我是人类,可能已经错过了一些东西,但这对我来说听起来很不错。
您不能将联合身份登录名存储在用户池中。就像Facebook一样,用户池是另一个身份提供者。发电机(或其他东西)将是必经之路。
如果用户同时登录并链接了这两个登录,则您可能要考虑完全避免使用用户池属性,而仅使用dynamo。通过链接两个登录,Cognito联合身份仅需要一个登录令牌即可继续进行,但是用户池需要它的登录令牌才能查看/更新属性。用户必须使用用户池登录才能触摸这些属性,否则会变得混乱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句