cut*_*eth 3 facebook amazon-web-services aws-cognito
我想允许用户使用用户池身份(电子邮件+密码)或Facebook联合身份进行注册。
但是我也希望他们能够稍后打开:如果他们最初没有使用Facebook进行注册,则添加Facebook联合,或者如果他们最初使用Facebook进行注册,则从其帐户中删除Facebook链接。
这可能吗?
提前致谢!
是的。我假设将Facebook作为IdP直接添加到Userpool。
将查询分为两部分:
1.用户使用用户名和密码进行注册。后来,他想链接他的Facebook帐户。
这非常简单。在用户界面中提供一个选项,并使用AdminLinkProviderForUser API将Facebook / Google帐户链接到用户。现在,当用户下次使用此Facebook / Google帐户登录时,Cognito会将其视为本地用户并为其生成令牌。当然,身份声明中将提及Facebook信息。如果用户想稍后删除此Facebook / Google链接,则可以使用AdminDisableProviderForUser API调用。
2.用户使用Facebook注册
这有点棘手,因为Facebook登录会自动在您的Userpool中创建一个状态为EXTERNAL_PROVIDER的用户(不同于具有CONFIRMED状态的本机用户)。顾名思义,该用户只能使用相关的外部提供商(在这种情况下为Facebook)登录。如果用户想使用用户名密码登录,则必须使用SignUp API或AdminCreateUser API创建一个新帐户。另外,该帐户不能使用AdminLinkProviderForUser链接到先前的Facebook帐户,因为前提条件是Userpool中不应存在具有相同详细信息(电子邮件等)的Facebook用户。但是目前,我们已经自动创建了一个状态为EXTERNAL_PROVIDER的Facebook用户。
因此,简而言之,您将必须-使用SignUp或AdminCreateUser API创建一个新用户,删除自动创建的Facebook用户,最后按照情况1所述链接Facebook帐户。
归档时间: |
|
查看次数: |
486 次 |
最近记录: |