我希望你能帮助我如何在Firebase中重新验证一个用户。我想知道如果文档没有解释如何使用它,那么添加所有这些伟大的特性是否有意义:
目前,这是我正在尝试的,它不工作。错误为cannot read property 'credential' of undefined
在构造函数中:
constructor(@Inject(FirebaseApp) firebaseApp: any) {
this.auth = firebaseApp.auth();
console.log(this.auth);
}
那么函数
changePassword(passwordData) {
if(passwordData.valid) {
console.log(passwordData.value);
// let us reauthenticate first irrespective of how long
// user's been logged in!
const user = this.auth.currentUser;
const credential = this.auth.EmailAuthProvider.credential(user.email, passwordData.value.oldpassword);
console.log(credential);
this.auth.reauthenticate(credential)
.then((_) => {
console.log('User reauthenticated');
this.auth.updatePassword(passwordData.value.newpassword)
.then((_) => {
console.log('Password changed');
})
.catch((error) => {
console.log(error);
})
})
.catch((error) => {
console.log(error);
})
}
}
8条答案
按热度按时间6ioyuze21#
reauthenticate()
方法在firebase.User上调用,而不是在firebase.auth.Auth本身上调用。更新(2017年7月):
Firebase Web SDK 4.0版本中有一些突破性的更改。从发行说明中可以看到:
中断:已删除
firebase.User.prototype.reauthenticate
,以支持firebase.User.prototype.reauthenticateWithCredential
。据我所知,
reauthenticateWithCredential
是旧方法的替代品。mpbci0fu2#
这里有一些代码,可以让用户(a)在Firebase中重新验证,以及(b)在为我重新验证后更改他们的密码。在写这篇文章时,我研究了大约一个小时,所以希望它能节省一些时间。
在VueJS中写道:
b09cbbtk3#
截至2019年5月略有变化,更多详情见此处,代码如下:
qrjkbowd4#
在
onPressed
中直接调用changeEmail("new email","password")
以更新用户电子邮件,不需要重新验证错误c0vxltue5#
她是一个完整的例子,如何重新认证与Firebase
fkaflof66#
**自2021年以来:**如果您使用Firebase JS API 9.x(树可摇动版本),这是最新的方式:
https://cloud.google.com/identity-platform/docs/web/reauth
带着证书
带弹出窗口
zbsbpyhn7#
以下是我在Firebase中重新验证用户的方法:
yiytaume8#
我在保存主电子邮件时收到重新验证错误
auth/requires-recent-login
。我不知道如何实现这个文档不全的
reauthenticateWithCredential(credential)
方法,所以,我简单地注销了用户并重定向到登录页面。这是一个黑客,但它的工作方式很有魅力!