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