【问题标题】:AWS Cognito Hosted UI - How to allow an EXTERNAL_PROVIDER user to create password?AWS Cognito 托管 UI - 如何允许 EXTERNAL_PROVIDER 用户创建密码?
【发布时间】:2019-05-19 19:34:36
【问题描述】:

在 Cognito 中,有什么方法可以允许用户(帐户状态:外部提供商)为其帐户创建密码并使用用户名和密码登录。 我正在使用托管 UI。

考虑一个用户使用谷歌登录方法登录并且用户池有一个用户条目的情况。我已经为用户提供了一个首选的用户名和电子邮件选项来登录。但由于它还没有密码,用户应该能够使用忘记密码的方法来重置他们的密码。 但是我收到错误“在当前状态下无法重置用户密码”。 您能否建议是否有任何方法或解决方法。

谢谢。

【问题讨论】:

标签: node.js amazon-cognito aws-amplify


【解决方案1】:

您不能为 EXTERNAL_PROVIDER 用户创建密码。 密码由您的提供商直接处理,Cognito 托管 UI 仅检索您之前在配置中映射的用户字段。

如果您尝试更改通过 Google 连接的用户的密码,您将收到以下错误:

用户无权更改密码。

因为密码只能通过提供商更改。

【讨论】:

  • 感谢您的帮助。我想要做的是允许第一次使用谷歌进入我的应用程序的用户现在可以使用他的谷歌电子邮件 ID 和一些密码来这样做。有没有办法将 EXTERNAL_PROVIDER 用户转换为 cognito 用户?
  • 我还问自己是否有办法将这两者联系起来。我也尝试过其他网站,比如 Airbnb:1)先用我的谷歌账户登录,然后退出; 2) 尝试使用之前使用的相同电子邮件。结论是谷歌登录与您的电子邮件无关。我认为我们只从提供者那里检索一个令牌。所以我想不可能将 EXTERNAL_PROVIDER 用户转换为 Cognito 用户。
  • 我检查了 AirBnb,它能够检测到我有一个使用给定电子邮件地址的谷歌帐户,它给了我两个选项,要么使用谷歌登录,要么重置密码。重置后,我可以使用谷歌和电子邮件/密码登录。
  • 我可以使用 AdminLinkProviderForUser 方法将提供者用户合并到现有的认知用户中。我正在寻找相反的方式。
  • @AmanGupta,您找到解决方案了吗?谢谢。
猜你喜欢
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 2019-06-02
  • 2016-11-01
  • 2018-02-06
  • 2018-08-23
  • 2020-09-18
相关资源
最近更新 更多