单击忘记密码链接流星帐户时,重定向登录页面

时间:2019-01-15 11:30:52

标签: node.js meteor account meteor-accounts

我正在使用流星的帐户包。我在忘记密码时遇到了问题。我收到了一封重设密码的邮件,当我单击此链接时,它会重定向到登录模板,而不是重设密码。

      Template.forgotpassword.events({  
        'submit form': function(event) {
            event.preventDefault();
            if (event.type == "submit" || event.which === 13) {
                event.preventDefault();
                var forgotEmail = $('#forgotEmail').val();
                Accounts.forgotPassword({ email: forgotEmail }, function(err, res) {
                    if (err) {
                        console.log('err', err)
                        toastr.error(err.reason)
                    } else {
                        toastr.success('Password reset link sent on registered email')
                        console.log('res', res);
                    }
                });
            };
        },
     });
    Template.ResetPassword.events({
        'submit #resetPasswordForm': function(e, t) {
            e.preventDefault();
            var resetPasswordForm = $(e.currentTarget),
                password = resetPasswordForm.find('#resetPasswordPassword').val(),
                passwordConfirm = resetPasswordForm.find('#resetPasswordPasswordConfirm').val();
            if (isNotEmpty(password) && areValidPasswords(password, passwordConfirm)) {
                Accounts.resetPassword(Session.get('resetPassword'), password, function(err) {
                    if (err) {
                        console.log('We are sorry but something went wrong.');
                    } else {
                        console.log('Your password has been changed. Welcome back!');
                        Session.set('resetPassword', null);
                    }
                });
            }
            return false;
        }
    });

像这样的电子邮件链接:

        Hello,          
        To reset your password, simply click the link below.
        http://localhost:3000/#/reset-password/3FekfZRVG1W5IiBFm0_rFwCAi3wmt74AQNUp2Dyamf
        Thanks.

像这样的路由器配置

        Router.route('/#/reset-password/:token', function() {
            this.render('ResetPassword');
            this.layout('blankLayout')
        });

模板:

    <template name="ResetPassword">
        <div class="middle-box animated fadeInDown login-page"> <img class="blanckLogo" src="logo.png" alt="logo">
            <form id="reset-password" name="reset-password">
                <div class="form-group required">
                    <label for="loginEmail">Enter New Password</label>
                    <input type="text" name="password" id="password" class="form-control"> </div>
                <div class="form-group">
                    <input type="submit" class="btn btn-block btn-default" id="login" value="Update Password"> </div>
            </form>
        </div>
    </template>
    <template name="forgotpassword">
        <div class="middle-box animated fadeInDown login-page"> <img class="blanckLogo" src="logo.png" alt="logo">
            <form id="forgotForm" name="forgotForm">
                <div class="form-group required">
                    <label for="loginEmail">Enter email</label>
                    <input type="text" name="loginEmail" id="forgotEmail" class="form-control"> <span class="help-block m-b-none p-w-sm">Enter a valid Email</span> </div>
                <div class="form-group">
                    <input type="submit" class="btn btn-block btn-default" id="login" value="Forgot Password"> </div>
                <div class="form-group"> <a class="btn-outline" href="/login">Back to login</a> </div>
            </form>
        </div>
    </template>

1 个答案:

答案 0 :(得分:0)

尝试通过在帐户配置中添加以下内容来删除“ /#”:

if (Meteor.isServer) {
  Meteor.startup(function () {    
    Accounts.emailTemplates.resetPassword = {
     html(user, uri) {
      uri = uri.replace('#/', '');
      return "Click link below to reset password:\n" + uri;
     }
    };
  });
}

也将您的路线从/#/reset-password/:token更新为/reset-password/:token