Перенаправление страницы входа при нажатии на ссылку забыть пароль учетных записей метеоров - PullRequest
0 голосов
/ 15 января 2019

Я использую пакет учетных записей метеора. Я столкнулся с проблемой в забыл пароль. Я получил письмо для сброса пароля, и когда я нажимаю на эту ссылку, он перенаправляет на шаблон входа вместо сброса паролей.

      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 голосов
/ 15 января 2019

Попробуйте удалить '/ #', добавив в конфигурацию вашей учетной записи следующее:

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.

...