首页 文章

FirebaseAuth - 让用户使用任何提供商更改密码 - Android

提问于
浏览
0

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

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

  • 如果使用Facebook或谷歌作为提供者,我可以让他/她设置电子邮件密码作为身份验证方法,给他/她一个更改密码的选项吗?

  • 来自用户的 change password 操作应使用用户输入的新密码在firebase中将Email-Password设置为Authentication Method .

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

1 回答

  • 3

    Answering your question:

    • Yes .

    以下是更改/更新用户密码的示例代码段:

    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 .

    1. a . Changing 您应用中的 password

    NO

    Facebook,Google和Twitter等SignIn提供商不会打开此功能(API)来防止中间人和其他攻击/滥用 .

    湾用户在登录后更改了服务提供商中的密码

    用户仍然可以登录您的应用程序,身份验证过程直接交给服务提供商,所以您不必担心!

    C . 具有相同电子邮件地址的多重身份验

    参考

    让我们说用户A使用Facebook登录到我的应用程序,然后他在MY APP中找到他的 Profiles ,并更改了他的密码,下次登录我希望他有2个选项:1-通常使用Facebook登录2-使用登录他的Facebook通过电子邮件发送他之前保存的密码

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

    例如,使用密码登录的用户可以关联Google帐户,并在将来使用这两种方法登录 . 或者,匿名用户可以链接Facebook帐户,然后登录Facebook继续使用您的应用程序 .

    希望能帮助到你!

相关问题