使用accounts-ui覆盖重置密码

时间:2014-10-28 08:36:51

标签: meteor meteor-accounts

我想覆盖并使用我自己的表单重置密码

我安装了帐户-ui包我试过

Router.route( '/reset-password', {
    path      : '/#/reset-password/:slug',
    name      : 'forgot-password',
    template  : 'ResetPassword',
    waitOn: function(){
        console.log("reset link");
    },
    controller: MainRouteController
});
HTML中的

    

    {{#if resetPassword}}
    <form  id="resetPasswordForm" method="post">
        <input id="resetPasswordPassword" name="password" placeholder="New Password" type="password" >
        <input id="resetPasswordPasswordConfirm" name="password-confirm" placeholder="Confirm" type="password" >
        <input class="btn-submit" type="submit" value="Reset">
    </form>
    {{/if}}

</template>

在.js文件中

if (Accounts._resetPasswordToken) {
  Session.set('resetPassword', Accounts._resetPasswordToken);
}

Template.ResetPassword.helpers({
 resetPassword: function(){
  return Session.get('resetPassword');
 }
});

但它仍显示account-ui的重置密码对话框

1 个答案:

答案 0 :(得分:4)

最佳解决方案是使用以下代码

更改resetPassword的网址
Accounts.urls.resetPassword = function (token) {
        return Meteor.absoluteUrl('resetPassword/' + token);
    };

在Iron-router中使用您的链接

Router.route( '/resetPassword', {
    path      : '/resetPassword/:slug',
    name      : 'forgot-password',
    template  : 'ResetPassword',
    waitOn: function(){
        console.log("reset link");
    },
    controller: MainRouteController
});