如何合并 2 个不同的身份验证信息?

Posted

技术标签:

【中文标题】如何合并 2 个不同的身份验证信息?【英文标题】:How to merge 2 different auth information? 【发布时间】:2017-06-01 15:50:51 【问题描述】:

首先,我使用电子邮件注册并注销,然后我使用相同的电子邮件进行 FB 登录。目前它创建为两个不同的用户。我希望合并这两个帐户。我在 firebase 文档中查看“链接”逻辑。但是我们可以将该帐户与现有的登录帐户相关联。谁能给我解决这个问题的方法?

我正在使用,

let credential = FIRFacebookAuthProvider.credential(withAccessToken: accessToken.tokenString)
FIRAuth.auth()?.signIn(with: credential, completion:  (user, error) in 
)

但即使 FB 电子邮件 id 已经注册,它也会作为新用户创建。

【问题讨论】:

此文档页面描述了帐户链接在 ios 上的工作原理:firebase.google.com/docs/auth/ios/account-linking。这有点挑剔(根据我的经验)。因此,如果您在使用它时遇到问题,请分享minimal code that shows where you are stuck。 【参考方案1】:

您必须在 Firebase 控制台(身份验证部分 -> 登录方法,页面底部)中为您的项目启用“每个电子邮件多个帐户”而不是“每个电子邮件地址一个帐户”。该设置将允许多个帐户使用与您的症状相匹配的同一电子邮件。

【讨论】:

但它会创建两个不同的帐户。 您需要切换到“每个电子邮件一个帐户”,这样您就可以始终为所有返回同一电子邮件的提供商提供一个帐户:support.google.com/firebase/answer/6400716 因此,当您使用具有与现有电子邮件相同的电子邮件,Firebase 身份验证后端将返回凭据已存在的错误。然后,您需要将新凭据链接到现有帐户。

以上是关于如何合并 2 个不同的身份验证信息?的主要内容,如果未能解决你的问题,请参考以下文章

Shiro 和 CAS 如何使用不同的域进行身份验证和授权?

如何在微服务和 API 网关架构中对不同的配置文件进行身份验证和授权

Bearer 用于身份验证令牌,但用于不同的令牌?

如何使用 Web API 来对 MVC 应用程序进行身份验证

AWS 身份验证和日志记录

在颤振应用程序的firebase身份验证中合并两个uid