gpt4 book ai didi

firebase - firebase google 提供商登录覆盖其他登录提供商的理想解决方案

转载 作者:行者123 更新时间:2023-12-05 05:43:55 25 4
gpt4 key购买 nike

我一直在研究 firebase 多提供商登录。我同时启用了电子邮件和谷歌。

我在某处读到,如果电子邮件尚未验证并且用户尝试使用 google 登录,那么即使使用相同的用户 ID,用户帐户也会被覆盖。

这是因为 gmail 是一个值得信赖的提供商,Firebase 取消了之前未经验证的电子邮件的链接,并用谷歌用户数据覆盖了数据。

根据我从这个 comment 中读到的内容,这是 Firebase 的安全功能和预期行为。

我的问题是,如果用户一直使用他的帐户和电子邮件和密码,突然间如果用户使用 gmail 登录,那么他将不再能够使用电子邮件和密码登录,我该如何处理这种情况.

是的,用户可以简单地使用 google login 登录,并且仍然是同一个用户帐户,只是被 google 覆盖了,但一些用户可能认为这是一个错误,而不是良好的用户体验。

最佳答案

我遇到了同样的问题,我有一个可能适合您的解决方案。

我正在为我用 Kotlin 编写的 Android 应用程序使用 Firebase 身份验证。我不确定您使用的是什么平台和语言,但如果您能够传输逻辑,该解决方案也应该适用于您。

对于 android,您使用 GoogleSignIn.getSignedInAccountFromIntent(data) 来验证 Google 帐户。这里的 data 是一个 Intent 类型的对象,它具有身份验证所需的所有必需数据。

我能够从 data 中获取用户电子邮件,如果之前使用同一电子邮件登录应用程序,我会拒绝登录并显示相应的消息。

以下是我用来获取用户电子邮件的代码行。

val googleUser: GoogleSignInAccount = data!!.getParcelableExtra("googleSignInAccount")!!

我希望这能为您指明正确的方向,如果解决方案不是您正在寻找的语言,我们深表歉意。

关于firebase - firebase google 提供商登录覆盖其他登录提供商的理想解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71717099/

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