Vic*_*c K 9 amazon-web-services facebook-login amazon-cognito amazon-cognito-facebook aws-cognito
我想集成一个非常标准的功能:为用户(移动和网络)提供选项,使用电子邮件/密码登录或使用RBAC的Facebook(谷歌)帐户(不同的用户可能有不同的角色,如用户,版主,管理员,创作者等).这基本上是我想要的登录:
我浏览了许多AWS教程和其他材料.我掌握了如何实现它,但我仍然没有完整的图片.希望有人可以帮助我.
这是我目前的理解(请纠正我,我错了).
1)对于电子邮件/密码注册/登录我使用用户池.当用户登录时,我调用authenticateUser(我正在使用JS SDK):
cognitoUser.authenticateUser(authenticationDetails, {
..
})
Run Code Online (Sandbox Code Playgroud)
在哪里onSuccess
2)对于facebook登录,我使用联合身份
Q1.注册/登录是否有效且相当完整?我错过了什么吗?
Q2.我应该如何存储Facebook用户?我可以在用户池中执行此操作吗?我的印象是它不可能,但这意味着我有2个不同的用户目录:一个在UserPool中,另一个在另一个地方(比如说在DynamoDB中)
Q3.如果我必须将用户存储在不同的地方(UserPool和DynamoDB),这意味着我有2个用户,基本上是一个用户,谁首先注册了电子邮件/密码,然后决定使用Facebook - 这对我作为应用管理员和用户都不方便.如何应对这种情况?
Q4.如何管理使用facebook令牌登录的用户组(如用户,版主,管理员,创建者等)?
Q5.对于Facebook登录用户,我应该如何限制对AWS以外的资源的访问?
Q6.这有什么实际的例子吗?
谢谢!
我是人类,可能错过了一些东西,但这对我来说听起来很不错。
您不能在用户池中存储联合身份登录名。就像Facebook一样,用户池是另一个身份提供者。发电机(或其他东西)将是必经之路。
如果用户同时登录并链接了这两个登录,则您可能要考虑完全避免使用用户池属性,而仅使用dynamo。通过链接两个登录,Cognito联合身份仅需要一个登录令牌即可继续进行,但是用户池需要它的登录令牌才能查看/更新属性。用户必须登录用户池才能触摸这些属性,否则会变得混乱。
我们通过Facebook,Google和LoginWithAmazon为用户池添加了对联合的支持。当用户使用联盟登录时,这将在用户池中创建一个用户。您还可以使用属性映射功能从身份提供者捕获属性。
另外,如果您使用应用程序集成功能,Amazon Cognito用户池将为您生成一个这样的登录页面。
通过Amazon Cognito控制台与社交提供商进行登录/注册的步骤:
| 归档时间: |
|
| 查看次数: |
3031 次 |
| 最近记录: |