AWS Cognito:使用usernam / password或facebook登录

维克

我想集成一个非常标准的功能:给用户(移动和网络)选项以使用RBAC的电子邮件/密码或Facebook(google)帐户登录(不同的用户可能具有不同的角色,例如用户,主持人,管理员,创建者等)。这基本上就是我想要登录的内容:

在此处输入图片说明

我阅读了许多AWS教程和其他材料。我对如何实现它有所了解,但是我仍然没有一个完整的画面。希望有人可以在这里帮助我。

这是我目前的理解(请在错误之处纠正我)。

1)对于电子邮件/密码注册/登录,我使用用户池。当用户登录时,我调用authenticateUser(我使用的是JS SDK):

cognitoUser.authenticateUser(authenticationDetails, {
..
})

哪里成功

  • 我存储身份,访问和刷新令牌,因此用户不必每次都输入其凭据
  • 因为用户将访问AWS服务(例如S3),所以我将idToken交换为AWS凭证
  • 访问资源时,将AWS凭证存储在LocalStore中以供进一步使用

2)对于Facebook登录,我使用联合身份

  • 获取一个Facebook访问令牌
  • 使用fb令牌获得认知身份
  • 与AWS凭证交换认知身份并将其存储在LocalStore中

问题:

Q1。注册/登录逻辑是否有效且相当完整?我想念什么吗?

Q2。我应该如何存储Facebook用户?我可以在用户池中这样做吗?我觉得这是不可能的,但这意味着我有2个不同的用户目录:一个在UserPool中,另一个在另一个地方(在DynamoDB中说)

Q3。如果我必须将用户存储在不同的位置(UserPool和DynamoDB),这意味着我实际上有2个用户,其中一个用户首先注册了电子邮件/密码,然后决定使用facebook-这对于我作为应用程序管理员和用户来说都是不便的。如何处理这种情况?

Q4。如何为使用Facebook令牌登录的用户(如用户,主持人,管理员,创建者等)管理群组?

Q5。对于Facebook登录用户,我应如何限制对AWS以外资源的访问?

Q6。有什么可行的例子吗?

谢谢!

杰夫·贝利
  1. 我是人类,可能已经错过了一些东西,但这对我来说听起来很不错。

  2. 您不能将联合身份登录名存储在用户池中。就像Facebook一样,用户池是另一个身份提供者。发电机(或其他东西)将是必经之路。

  3. 如果用户同时登录并链接了这两个登录,则您可能要考虑完全避免使用用户池属性,而仅使用dynamo。通过链接两个登录,Cognito联合身份仅需要一个登录令牌即可继续进行,但是用户池需要它的登录令牌才能查看/更新属性。用户必须使用用户池登录才能触摸这些属性,否则会变得混乱。

  4. 我不知道这是开箱即用的,就像用户池一样。您可能必须使用上述假设的用户数据库来执行此操作。
  5. 您也可以将您的用户群作为提供者链接到Cognito,就像您对Facebook所做的一样。这就是您将ID令牌交换为凭证的方式。
  6. 该服务没有正式的例子,尽管我不能代表他人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用aws cognito的Android Facebook登录将不举行登录会话?

使用 React Native + AWS Cognito 登录 FB

如何使用AWS Cognito支持Apple登录?

使用AWS Cognito和React的仅限Facebook / Google的登录名(无用户名/密码)

如何使用iOS Swift为AWS Cognito凭证提供者设置Facebook登录名

如何使用AWS Cognito在Facebook之类的应用程序上永久登录用户

同时使用用户名和Facebook进行AWS Cognito登录?

将Facebook登录名与AWS Cognito用户池集成

如何使用 AWS Cognito Userpool 令牌登录 AWS Api 网关?

AWS Cognito-从AWS Cognito使用Google登录时是否可以获取Google访问令牌并使用AWS Access令牌刷新

如何使用 PHP SDK 登录 AWS Cognito 用户池

使用 Google 登录 AWS Cognito 托管 UI 期间的 CORS 问题

使用AWS Cognito Vuejs

如何从Angular / Amplify / Cognito登录页面中删除“使用AWS登录”按钮?

AWS Cognito无需密码即可登录

上次成功/失败登录时间AWS Cognito

AWS Cognito:注册确认后自动登录

用于登录Amazon的AWS Cognito导致NotAuthorizedException

AWS Cognito内置登录重定向问题

AWS Cognito自定义登录UI

登录时出现 AWS Cognito 未知错误

如何在不使用本机SDK的情况下使用AWS Cognito登录

使用python登录AWS Cognito并获取令牌,就像人类用户一样

AWS Cognito用户池的跨帐户使用情况以进行登录

AWS Cognito-使用SignInUI登录后获取用户数据

使用AWS Cognito执行IdP初始化登录时出错

AWS Cognito-使用Google登录时如何强制选择帐户

Aws Cognito的SAML属性映射-注册或登录有效,但不能同时使用

使用Lambda,Cognito或IAM在AWS上进行用户身份验证(注册和登录)