Node.js AWS Cognito托管UI-如何允许外部_提供者用户创建密码?

Node.js AWS Cognito托管UI-如何允许外部_提供者用户创建密码?,node.js,amazon-cognito,aws-amplify,Node.js,Amazon Cognito,Aws Amplify,在Cognito中,我是否可以允许用户(帐户状态:External provider)为其帐户创建密码,并使用用户名和密码登录。 我使用的是托管用户界面 考虑这样一种情况:用户使用Google登录方法登录,用户池中有一个用户条目。我已为用户提供了一个首选用户名和电子邮件选项以进行登录。但由于它还没有密码,用户应该能够使用忘记密码方法重置密码。 但我得到错误“用户密码无法在当前状态下重置。” 您能否建议是否有任何方法或解决方法 谢谢。您不能为外部\u提供商用户创建密码。 密码由提供者直接处理,Co

在Cognito中,我是否可以允许用户(帐户状态:External provider)为其帐户创建密码,并使用用户名和密码登录。 我使用的是托管用户界面

考虑这样一种情况:用户使用Google登录方法登录,用户池中有一个用户条目。我已为用户提供了一个首选用户名和电子邮件选项以进行登录。但由于它还没有密码,用户应该能够使用忘记密码方法重置密码。 但我得到错误“用户密码无法在当前状态下重置。” 您能否建议是否有任何方法或解决方法


谢谢。

您不能为外部\u提供商用户创建密码。 密码由提供者直接处理,Cognoto托管的UI只检索您以前在配置中映射的用户字段

如果您试图更改通过Google连接的用户的密码,则会出现以下错误:

用户无权更改密码


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

谢谢您的帮助。我想做的是允许一个用户谁首先进入我的应用程序使用谷歌现在可以这样做使用他的谷歌电子邮件id和一些密码。有没有一种方法可以将外部提供者用户转换为cognito用户?我还问自己是否有一种方法可以将这两者联系起来。我还尝试了其他网站,如Airbnb:1)先用我的谷歌帐户登录,然后注销;2) 尝试使用以前使用的相同电子邮件。结论是谷歌的登录没有链接到你的电子邮件。我想我们只能从提供者那里检索令牌。因此,我猜不可能将外部_提供者用户转换为Cognito用户。我检查了AirBnb,它能够检测到我有一个具有给定电子邮件地址的google帐户,它给了我两个选项,要么使用google登录,要么重置密码。重置后,我可以使用google和电子邮件/密码登录。我可以使用AdminLinkProviderForUser方法将提供者用户合并到现有的cognito用户中。我在找相反的路。@AmanGupta,你找到解决办法了吗?非常感谢。