没有来自Accounts.resetPassword()的回调

时间:2014-10-24 02:51:18

标签: meteor iron-router meteor-accounts

我正在处理我申请的注册部分。在服务器端创建新用户后,我调用Accounts.sendEnrollmentEmail()。我收到的电子邮件中包含以下链接:

http://localhost:3000/enroll-account/XqMb6mqZQ3cGfyOgQgtWvLPqzVJ-qJeBYJ_I46mNE9c

并在Iron Router中创建了一个路由来处理它并显示“选择密码”表单,如下所示:

路线:

...
this.route('enrollAccount', {
    path: '/enroll-account/:token',
    data: function() { return this.params.token; }
});
...

注册模板:

<template name="enrollAccount">
    <div class="panel panel-default">
        <div class="panel-body">
            <p>Please enter a password and click 'Enroll Account'</p>
            <div class="form-control">
                <label for="password">Enter Password</label>
                <input type="password" id="password" name="password" />
            </div>
            <div class="form-control">
                <label for="reenterPassword">Re-enter Password</label>
                <input type="password" id="reenterPassword" name="reenterPassword" />
            </div>
            <button class="btn btn-primary" id="btnEnroll">Enroll Account</button>
        </div>
    </div>
</template>

和JS:

Template.enrollAccount.events({
    'click #btnEnroll': function(event, tmpl) {
        event.preventDefault();
        console.log('Enrolling with token ', this);
        Accounts.resetPassword(this, tmpl.$('#password').val(), function(err) {
            if (err) {
                // TODO Toss some error
                console.log('Error: ', err);
            } else {
                console.log('Enrollment successful, going home...');
                Router.go('home');
            }
        });
    }
});

当我输入注册网址时,我得到表格就好了,填写完毕,点击按钮并获取console.log说它正在发送。我还验证了令牌与DB中的令牌匹配。但是,对Accounts.resetPassword()的调用从不执行回调函数。浏览器控制台中既没有错误也没有else日志。在MongoDB中选择用户显示仍然没有设置密码,并且它仍然具有使用相同令牌的服务 - &gt;密码 - &gt;重置。我确信我错过了一步,但我不知道是什么。

1 个答案:

答案 0 :(得分:2)

看来,Iron Router传入模板的对象实际上并不是String。当我打印出来时,它看起来像一个字符串,但如果我这样调用重置:

Accounts.resetPassword(this.toString(), tmpl.$('#password').val(), function(err)...

然后按预期工作。