【问题标题】:FirebaseAuth - Let user change password using any provider - AndroidFirebaseAuth - 让用户使用任何提供者更改密码 - Android
【发布时间】:2018-08-07 11:28:49
【问题描述】:

我有一个社交媒体应用程序,我正在使用FirebaseUI 让用户使用电子邮件、Google 或 Facebook 登录/注册该应用程序。

  1. 如果使用“电子邮件”作为密码,我如何让用户稍后更改他/她的密码 供应商?

  2. 如果使用 Facebook 或 Google 作为提供商,我可以让他/她通过更改密码的选项将电子邮件密码设置为身份验证方法吗?

  3. 用户的 change password 操作应在 firebase 中将 Email-Password 设置为身份验证方法,并使用用户输入的新密码。

  4. 然后,用户应该能够使用电子邮件密码或与同一电子邮件链接的身份验证提供商(Facebook/Google)登录。

【问题讨论】:

标签: android firebase firebase-authentication


【解决方案1】:

回答您的问题:

  1. 是的

这里是一个用于更改/更新用户密码的示例代码 sn-p:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String newPassword = "SOME-SECURE-PASSWORD";

user.updatePassword(newPassword)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "User password updated.");
            }
        }
    });

使用 Firebase 用户的详细信息可在 here 获取。

2。 一个。 更改应用中的密码

Facebook、Google 和 Twitter 等登录提供商不开放此功能 (API) 以防止中间人和其他攻击/滥用。

b.用户登录后在服务商中修改密码

用户仍然可以登录您的应用程序,身份验证过程直接与服务提供商处理,因此您不必担心!

c。使用同一电子邮件地址进行多次身份验证。

参考

假设用户 A 使用 Facebook 登录到我的应用程序,然后他转到我的应用程序中的个人资料,并更改了他的密码,下次登录我希望他有 2 个选项:1- 正常使用 Facebook 登录 2-使用他的 facebook 电子邮件 + 他之前保存的密码登录

答案是YES,但是你要先合并细节,这里是reference。您实际上可以通过识别相同的 Firebase 用户 ID 来链接/合并同一电子邮件地址的用户详细信息,而不管他们用于登录的身份验证提供商。

例如,使用密码登录的用户可以关联 Google 帐户,并在以后使用任一方法登录。或者,匿名用户可以关联 Facebook 帐户,然后再登录 Facebook 以继续使用您的应用。

希望对您有所帮助!

【讨论】:

  • 感谢第一部分,第二部分我并不是要在提供者平台中更改用户密码,我的意思是允许用户在我的应用程序中更改他们的密码,然后他们可以使用电子邮件或他们的第一个提供商登录
  • @YousefGamal 说清楚,例如,用户 A 用 facebook 登录,登录您的应用程序,然后他在 facebook 中更改密码,然后再次登录您的应用程序,这是什么你是说?
  • 不,我的意思是假设用户 A 使用 Facebook 登录我的应用程序,然后他在 MY APP 中转到他的个人资料,并更改了他的密码,下次登录我希望他有 2选项:1- 正常使用 Facebook 登录 2- 使用他的 Facebook 电子邮件 + 他之前保存的密码登录
  • @YousefGamal 答案更新于 2 (C) 希望对您有所帮助!如果我回答了您的疑问,请标记答案。额外的部分是在未来将信息提供给其他人!干杯
猜你喜欢
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多