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

获取参数,存储并在变量上使用它们,以便在我的方法上使用

金理
2023-03-14

我希望获得模式oobcodeapikey。以下是我现在所拥有的:

export default {


data: function() {
    return {
        passwordNew: '',
        passwordConfirm: '',
        mode:'',
        actionCode: '',
        continueUrl: '',
    }
},
methods: {
    handleResetPassword: function() {
        var accountEmail;

        firebase.auth().verifyPasswordResetCode(actionCode).then(function(email) {
            var accountEmail = email;
            firebase.auth().confirmPasswordReset(this.actionCode, this.passwordNew).then(function(resp) {

                alert("Password reset success");
                this.$router.push('hello')
            }).catch(function(error) {
                // Error occurred during confirmation. The code might have expired or the
                // password is too weak.
                console.log("error 1")
            });
        }).catch(function(error) {
            // Invalid or expired action code. Ask user to try to reset the password
            // again.
            console.log("error 2")
        });
    },
}

}

共有1个答案

万俟飞语
2023-03-14

来自Firebase文档:

某些用户管理操作(如更新用户的电子邮件地址和重置用户的密码)会导致向用户发送电子邮件。这些电子邮件包含链接,收件人可以打开这些链接来完成或取消用户管理操作。默认情况下,用户管理电子邮件链接到默认操作处理程序,该处理程序是以项目的Firebase宿主域中的URL托管的web页面。

您需要获取这些参数并将它们存储在变量中,我从firebase文档中获得了这些片段,并编写了getParameterByName函数:

function getParameterByName( name ){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
    // Get the action to complete.
    var mode = getParameterByName('mode');
    // Get the one-time code from the query parameter.
    var actionCode = getParameterByName('oobCode');
    // (Optional) Get the continue URL from the query parameter if available.
    var continueUrl = getParameterByName('continueUrl');

您需要首先获取这些参数并验证verifyPasswordResetCode方法上的actioncode,然后您可以更改密码并将其与操作代码一起存储到该方法中。

在导出默认值中:

data: function() {
        return {
            passwordNew: '',
            passwordConfirm: '',
            mode: mode,
            actionCode: actionCode,
            continueUrl: continueUrl,
        }
    },
    methods: {
        handleResetPassword: function() {
            var passwordNew = this.passwordNew
            var actionCode = this.actionCode
            firebase.auth().verifyPasswordResetCode(actionCode).then(function(email) {
                console.log("ActionCode: "+ actionCode);

                firebase.auth().confirmPasswordReset(actionCode, passwordNew).then(function(resp) {

                    alert("Password reset success");
                    this.$router.push('hello')
                }).catch(function(error) {
                    console.log("error 1"+ error)
                });
            }).catch(function(error) {
                console.log("Action code is invalid"+ error)
            });

        },
    }
 类似资料:
  • 问题内容: 似乎不符合我的想法。有什么建议? 问题答案: (模糊的问题) 您是否以错误的方式获取了Category和@Variable:sqlFiddle

  • 在另一个react组件中,如何使用存储mongoDB数据的变量,在该组件中,我们可以使用从mongoDB获取并存储在该变量中的数据。 从mongoDB中提取数据并将其存储在名为data的变量中的文件的代码 现在我想在另一个反应组件中使用这个数据变量,这样我就可以显示存储在数据变量中的数据

  • 问题内容: 注意:Windows和Docker都是新手 我一直在使用的教程说,如果我们使用的是Linux,它们就在下面,但是我似乎无法在Windows计算机上找到它。 谢谢! 问题答案: 输入docker-machine与 在那里,您应该找到您的容器。

  • 问题内容: 我想在变量中提取当前路径,并稍后在脚本中使用它 就像是: 稍后的: 但是多年来,我的bash技能已经生锈了。 我将如何进行呢? 问题答案: (如果路径包含空格,则必须使用引号。)

  • 我是Cypress的新手,我期待工作的一些事情有着非常奇怪的问题。例如,我试图获取表中某列的值,并在搜索输入中使用该值。我是这样做的: 但是当我运行这个程序时,我得到一个错误,指出[data cy=data table row]的长度是25而不是1。事实证明,我使用的id变量在should方法之外是不可访问的。我想那是因为这是一个promise。 如果我尝试这样做: 测试进入精神状态,一次又一次地

  • 我试图在Spring Jpa存储库上使用@Lock注释,将锁定模式设置为OPTIMIZE\u FORCE\u INCREMENT,但版本没有增加。 使用EntityManager.find()并指定锁定模式的相同测试用例工作正常。使用PESSIMISTIC_FORCE_INCREMENT的相同测试用例也工作正常。 我想知道我是否遗漏了什么,或者我遇到了一些未记录的限制,或者只是一个bug。 我的环