gpt4 book ai didi

facebook - AWS Cognito 将用户切换到联合账户

转载 作者:行者123 更新时间:2023-12-04 23:13:53 30 4
gpt4 key购买 nike

我希望允许用户使用用户池身份(电子邮件 + 密码)或 Facebook 联合身份进行注册。

但我也希望他们以后能够切换:如果他们最初没有使用 Facebook 注册,则添加 Facebook 联盟,或者如果他们最初使用 Facebook 注册,则从他们的帐户中删除 Facebook 链接。

这可能吗?

提前致谢!

最佳答案

是的。我假设 Facebook 作为 IdP 直接添加到用户池中。

将您的查询分为两部分:

1. 用户使用用户名和密码注册。后来,他想链接他的Facebook帐户
这很容易。在您的用户界面中提供一个选项并使用 AdminLinkProviderForUser将 Facebook/Google 帐户链接到用户的 API。现在,当用户下次使用此 Facebook/Google 帐户登录时,Cognito 会将其视为本地用户并为其生成 token 。当然,Facebook 信息将在身份声明中提及。如果用户想稍后删除此 Facebook/Google 链接,可以使用 AdminDisableProviderForUser API 调用。

2.用户使用Facebook注册
这有点棘手,因为 Facebook 登录会自动在您的用户池中创建一个状态为 EXTERNAL_PROVIDER 的用户(与具有 CONFIRMED 状态的本地用户不同)。顾名思义,此用户只能使用相关的外部提供商登录 - 在这种情况下为 Facebook。如果用户想使用用户名密码登录,则必须使用 SignUp API 或 AdminCreateUser API 创建一个新帐户。此外,此帐户不能使用 AdminLinkProviderForUser 链接到之前的 Facebook 帐户,因为前提条件是用户池中不应存在具有相同详细信息(电子邮件等)的 Facebook 用户。但此时,我们有一个自动创建的 Facebook 用户,其状态为 EXTERNAL_PROVIDER。

因此,简而言之,您必须 - 使用 SignUp 或 AdminCreateUser API 创建一个新用户,删除自动创建的 Facebook 用户并最后链接 Facebook 帐户,如案例 1 中所述。

关于facebook - AWS Cognito 将用户切换到联合账户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48622922/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com