具有社交媒体身份验证的用户的 Firebase 重置密码问题

Posted

技术标签:

【中文标题】具有社交媒体身份验证的用户的 Firebase 重置密码问题【英文标题】:Firebase reset password issue for users with social media authentication 【发布时间】:2017-11-25 13:43:30 【问题描述】:

我正在尝试为在 Firebase 中具有电子邮件身份验证以及 Facebook 和 Twitter 身份验证的用户重置 ios 中 Firebase 的密码。

密码重置成功,用户ID相同,但用户的Facebook和Twitter认证被删除(见下文)。如何在不删除社交媒体身份验证的情况下在 Firebase 中重置密码?

在密码重置之前通过社交媒体链接进行用户身份验证

密码重置后取消链接社交媒体的用户身份验证

android 也会出现此问题

【问题讨论】:

您能否提供用于重置密码的代码(包括授权部分)? 【参考方案1】:

以下来自 Google 员工的回复似乎表明,取消链接是密码重置的预期结果,以允许用户在帐户被其他用户劫持和修改的情况下恢复其帐户: https://***.com/a/44694017/1171539

【讨论】:

【参考方案2】:

首先我会检查他们用来登录的方法:

您可以使用以下方法查找与帐户关联的提供商:fetchProvidersForEmail 要重置密码,请使用:sendPasswordResetWithEmail 还有关于如何发送密码重置并重定向回应用程序的说明:https://firebase.google.com/docs/auth/ios/passing-state-in-email-actions

见Firebase forgot password- how to identify whether user signed in with email or facebook?

一旦您知道登录方法,如果方法是电子邮件/密码,您可以调用专门重置密码,仅使用电子邮件。如果是社交媒体,那么你可以不重置它,或者要求用户取消关联账户,重置账户密码,如果你确定要重新关联账户。

你试过吗?

【讨论】:

如果您在登录时检查他们的登录方法,您可以简单地让这个“解决方法”显示重置密码的用户界面,或者如果它是一个社交媒体帐户,则不显示它。用户体验只会根据重置按钮是否存在而改变,但无论如何您都无法通过firebase重置社交媒体网站的密码......

以上是关于具有社交媒体身份验证的用户的 Firebase 重置密码问题的主要内容,如果未能解决你的问题,请参考以下文章

如果用户已经使用 Vue 和 Firebase 身份验证登录,如何自动重定向用户?

用于 Spotify 的 Python 社交身份验证:重定向缺少“状态”参数

在 Firebase 中实施自定义身份验证的工作流程是啥?

如何使用 Firebase 身份验证和托管将登录用户重定向到子域?

具有 Firebase 身份验证用户的 Firebase 数据库数据结构

Firebase 身份验证 Flutter 中的电话号码