相关问题:How does Firebase Auth UI deal with reauthentication?(这个问题是关于iOS的,未解决)
我想允许用户在Android上使用FirebaseUI更新他们的电子邮件/密码/等 .
根据guide,"drop-in" UI提供:
帐户管理 - 用于处理帐户管理任务的流程,例如帐户创建和密码重置 .
在GitHub上,看起来AuthUI管理页面功能仍在进行中(对吗?)
所以,我已经创建了自己的帐户管理页面,但有些操作对安全性敏感,需要reauthentication:
某些安全敏感操作(例如删除帐户,设置主电子邮件地址和更改密码)要求用户最近登录 . 如果您执行其中一项操作,并且用户已在很久以前登录,操作失败并抛出FirebaseAuthRecentLoginRequiredException .
示例代码要求我们在将用户传递给reauthenticate之前从用户检索凭据:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
// Get auth credentials from the user for re-authentication. The example below shows
// email and password credentials but there are multiple possible providers,
// such as GoogleAuthProvider or FacebookAuthProvider.
AuthCredential credential = EmailAuthProvider
.getCredential("user@example.com", "password1234");
// Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d(TAG, "User re-authenticated.");
}
});
但是,从用户获取凭据非常重要,因为我允许使用Google,电子邮件,Facebook和电话号码登录 . 例如,使用电话号码登录需要将文本发送到手机 . 这需要的不仅仅是一个要求输入密码的警告对话框 .
在Github上,几个月前有adding a reauthentication builder的合并,但我在最近的FirebaseUI版本中找不到这个功能 . 像 AuthUI.createReauthIntentBuilder()
之类的东西会很完美 .
What is the best approach for re-authenticating a user with Firebase on Android? 我可以使用 AuthUI.createSignInIntent()
,还是实现我自己的重新认证对话框?
目前使用:FirebaseUI Auth 3.1.2
1 回答
使用方法
updateEmail