【发布时间】:2018-04-14 16:41:46
【问题描述】:
我已经有使用电子邮件和密码注册的用户。
当用户注销,然后用相同邮箱的google登录时,使用相同的userId从Auth登录成功,但是邮箱密码auth消失了(信封图标不见了)。有点被取代了。
我的登录应用有 3 个按钮:
- 手机登录
- 使用电子邮件和密码登录
- 使用 Google 登录
假设我有用户 A 已经注册: 电子邮件:awesomeA@gmail.com 通过:一些密码
然后用户 A 出于某种原因退出,然后使用 Google 再次登录,但使用相同的电子邮件 (awesomeA@gmail.com)
在 Console Auth 中,userId A 和以前一样,但是 firebase Auth 中的图标只显示 google,电子邮件密码 Auth 的图标不见了
注意:为什么我使用电子邮件密码作为主要身份验证?因为我的应用程序包含付款信息。因此,如果设备被盗,我想使用 firebase 重新认证系统使其安全。所以只要小偷不知道密码,他就不能用虚拟钱包买任何东西
【问题讨论】:
-
Google 身份验证是
@gmail.com电子邮件地址的可信提供商。见*.com/questions/37947944/… -
@Frank 但是为什么当我使用链接身份验证时,一切正常?为什么不链接两个身份验证而不是删除电子邮件密码身份验证?真的有那么难吗?或者 admin.sdk 中是否有我们可以用来链接身份验证的 api?
-
我已经编辑了我的问题,以添加我将电子邮件和密码作为我的主要身份验证的理由
-
当您手动链接时,您肯定知道这两个帐户(电子邮件/密码和谷歌凭据)都属于同一用户,因为它们都是由同一用户获得的。当您使用 Google 登录时,您知道该帐户已通过验证,但您无法判断该电子邮件/密码帐户属于该已验证用户。这就是它被覆盖的原因。
-
嗯.. 我明白了,这意味着我需要创建活动以重新使用电子邮件和密码重新链接,以确保之前注册的用户是同一用户.. 谢谢 bojeil,简短提问 auth 中如何识别用户是否有邮箱和密码?
标签: firebase firebase-authentication firebase-security firebaseui