如何创建Firebase Web用户.reauthenticate()方法所需的"凭证"对象?

10 浏览
0 Comments

如何创建Firebase Web用户.reauthenticate()方法所需的"凭证"对象?

使用v3 Firebase客户端,我应该如何为Google身份验证提供程序创建此凭据对象(不是电子邮件和密码)。\n如何使用电子邮件和密码进行操作在这里有解答:Email&Password。\n我尝试了var credential = firebase.auth.GoogleAuthProvider.credential();,但根据文档,它需要一个“Google Id Token”,我不知道如何获取。

0
0 Comments

问题:如何创建Firebase Web用户.reauthenticate()方法所需的“credential”对象?

原因:在重新验证用户身份时,需要使用“credential”对象来进行身份验证。如果使用Google身份验证提供程序进行重新验证,并且没有令牌和凭据,可以使用reauthenticateWithPopup(provider)或reauthenticateWithRedirect(provider)方法。

解决方法:

1. 创建Google身份验证提供程序:

function createGoogleProvider() {
  const provider = new auth.GoogleAuthProvider()
  provider.addScope('profile')
  provider.addScope('email')
  return provider
}

2. 使用弹出窗口进行重新验证:

user.reauthenticateWithPopup(createGoogleProvider()).then(function(result) {
  var user = result.user;
}, function(error) {
  // An error happened.
});

以上就是解决问题的方法。通过创建Google身份验证提供程序并使用reauthenticateWithPopup方法,可以重新验证用户身份。

0
0 Comments

问题的原因是需要使用Firebase的web用户的reauthenticate()方法,但是需要一个名为“credential”的对象。解决方法是使用firebase.auth.EmailAuthProvider.credential()方法创建一个AuthCredential对象,然后使用firebase.User.reauthenticateWithCredential()方法进行重新认证。

以下是解决方法的代码示例:

var user = firebase.auth().currentUser;
var credential = firebase.auth.EmailAuthProvider.credential(
  user.email,
  'yourpassword'
);
user.reauthenticateWithCredential(credential);

通过使用上述代码,可以创建一个AuthCredential对象,并使用该对象进行重新认证。

注意:如果代码解答了问题,但没有提供解决方法的上下文信息,那么答案的长期价值会降低。感谢提供反馈,我已经添加了一些上下文信息。如果有问题,请留下评论,我会尽力帮助您。

0