当前位置: 首页 > 知识库问答 >
问题:

Firebase Auth-使用GoogleAuthProvider重新验证用户时遇到困难

堵茂勋
2023-03-14

根据文档,我需要重新验证用户谁试图删除他们的帐户,但没有登录一段时间。下面是文档(非常底部):

文件编制

如果执行其中一个操作,而用户登录时间太长,则操作失败并出现错误。当发生这种情况时,通过从用户获取新的登录凭据并将凭据传递给reauthenticateWithCredential来重新验证用户

var user = firebase.auth().currentUser;
var credential;

// Prompt the user to re-provide their sign-in credentials

user.reauthenticateAndRetrieveDataWithCredential(credential).then(function() {
  // User re-authenticated.
})
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
var user = firebase.auth().currentUser;
let credential = firebase.auth.GoogleAuthProvider.credential(firebase.auth().currentUser.email);

user.reauthenticateAndRetrieveDataWithCredential(credential).then(() => {
  // User re-authenticated.
});

请帮忙。

共有1个答案

艾令秋
2023-03-14

您的问题是,您试图检索谷歌凭据使用电子邮件地址,这是不可能的。

let credential = firebase.auth.GoogleAuthProvider.credential(firebase.auth().currentUser.email);

根据文件,

credential(idToken,accessToken)返回firebase.auth.oAuthCredential

var credential = firebase.auth.GoogleAuthProvider.credential(id_token);
var credential = firebase.auth.GoogleAuthProvider.credential(null,access_token);
firebase.auth().currentUser.reauthenticateWithPopup(
    new firebase.auth.GoogleAuthProvider()).then(function(userCredential) {
        // You can now delete the user:
        return firebase.auth().currentUser.delete();  
    }).catch(function(error) {
        // Credential mismatch or some other error.  
    }
);
 类似资料:
  • 如有任何帮助将不胜感激 编写一个名为Bike的类,它有三个私有属性:model、type、year--为这些属性提供getter和setter。不允许在属性中存储无效数据-年份应为正数,型号应仅包含字母、数字和空格,类型应为以下类型之一:山地、斐济、越野。提供私有方法来验证模型并在更改模型时使用它,还提供方法从模型中删除任何无效字符,以便将新字符串保存到模型属性中。 私有boolean isVal

  • 我想创建一个登录,用户只需输入他/她的邮件地址,并通过电子邮件进行验证。使用firebase,到目前为止我有这样的代码: > 当用户在将邮件放入字段中后单击按钮登录时。我尝试创建一个新帐户(密码是随机的,因为我不需要它)。如果它不存在,我会发送验证邮件。如果该帐户存在,我会与checkIfVerifiedUser核实用户是否通过单击邮件来验证该帐户。 这是我调用的方法: 问题是我要么firebas

  • 我正在创建一个生产应用程序。 现在我已经创建了我的的一部分 此在登录时会生成一个对象,但我不热衷于通过HTTP标头发送未加密/未加密。 为了让您了解我的: 登录时: 正如您现在看到的(因为我还不确定如何处理它),我只查找用户名,然后检查用户名是否存在。 我的问题很简单,如何加密密码,然后在密码到达API后进行验证?

  • 我正在努力让LDAP身份验证与Active Directory一起工作。 我们刚刚安装了一个SharePoint Server 2010,我们认为还可以根据Active Directory对用户进行身份验证,因为它已经用于SharePoint。我们的环境是Windows Server 2008 R2标准。 根据这个答案https://serverfault.com/a/130556我的提供商URL

  • 问题内容: 我希望在允许用户更改其登录信息之前重新对其进行身份验证。但是,由于最近的Firebase更新,我发现文档没有帮助。使用此链接,我产生了以下authenticateUser()函数。 但是,我不确定如何使用FIRAuthCredential类型的凭证变量来重新认证用户。此类的文档可在此处找到。 问题答案: 获取对象取决于要用于重新认证的提供程序。 电子邮件: 脸书: 推特: 谷歌: