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

Firebase v3密码验证-触发器/Fire验证电子邮件?

闽焕
2023-03-14

对于Firebase上托管的Web应用程序,我希望通过电子邮件向新用户发送验证链接来验证他们。我浏览了文档,创建了自定义电子邮件操作处理程序,配置了自定义域,密码验证工作正常。

那么,如何触发密码验证?如何获取oobCode和apiKey参数?我正在注册一个新用户罚款和什么都没有发生在我的身份监听器页面?

var getArg = getArg();
var mode = getArg['mode'];
var oobCode = getArg['oobCode'];
var apiKey = getArg['apiKey'];

console.log(mode, oobCode, apiKey);

switch (mode) {
    case 'resetPassword':
        console.log('Password Request Fired');
        break;
    case 'recoverEmail':
        console.log('Recover Email Fired');
        break;
    case 'verifyEmail':
        console.log('Verify Email Fired');
        break;
}

//Thanks Geoffrey Crofte
function getArg(param) {
    var vars = {};
    window.location.href.replace(location.hash, '').replace(
        /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
        function(m, key, value) { // callback
            vars[key] = value !== undefined ? value : '';
        }
    );

    if (param) {
        return vars[param] ? vars[param] : null;
    }
    return vars;
}

共有1个答案

黄隐水
2023-03-14

firebase。auth()。当前用户。sendEmailVerification()模式oobCodeapiKey变量发送到登录用户的电子邮件地址。在验证之前,通过读取currentUser,可以将登录用户标识为未验证。emailVerified属性。用户打开电子邮件并单击验证链接,该链接将HTTP会话调用到您的身份验证侦听器页面,这些变量在URL中作为参数显示。

在我的原始文章(或您自己的文章)中使用getArg()方法将浏览器中的参数解析为您的授权监听器页面的JavaScript中的变量。

>

  • 构建您的身份验证监听器页面(主要是从文档粘贴)
  • 向登录用户发送电子邮件

    firebase.auth().currentUser.sendEmailVerification()
    //checks if signed in user is verified, if not tell them to check email
    firebase.auth().currentUser.emailVerified; //false now so handle user experience appropriately until verified
    

    官方网站方法参考索引很有用。其他一些相关方法(均为表格)如下所示:

    //updates email of signed in user
    -> firebase.auth().currentUser.updateEmail(newEmail)
    
    //updates password of signed in user
    -> firebase.auth().currentUser.updatePassword(newPassword)
    -> firebase.auth().sendPasswordResetEmail(email)
    
    //deletes auth account of signed in user
    -> firebase.auth().currentUser.delete()
    

  •  类似资料:
    • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

    • 电子邮件验证+电子邮件/密码验证的使用不适用于在用户开始使用服务之前绝对需要电子邮件验证的服务。 让我用Google sign in First的一个例子来解释。 首先,用户登录他们的Google帐户(比如电子邮件是),并授权您的应用程序。然后使用通过它接收到的令牌创建一个凭据,并与Firebase交换这些令牌以将用户登录到Firebase。用户需要存在于Firebase中,您才能使用Fireba

    • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

    • 除了教练通知每个成员他们各自的密码之外,还有人能想出解决这个问题的方法吗?

    • 问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:

    • 如何使用firebase中的验证电子邮件验证使用电子邮件和密码登录的用户?这背后的逻辑是如何工作的,它在代码中会是什么样子? 解决方案/帮助:对于那些仍在寻找答案的人,我找到了这篇文章 堆栈溢出 帖子