Meteor帐户验证电子邮件

时间:2015-02-23 21:18:31

标签: meteor iron-router meteor-accounts

我正在尝试使用帐户密码包进行电子邮件验证但是我遇到了一个奇怪的问题。

电子邮件验证网址中的#似乎导致了问题。验证电子邮件网址通常如下所示:http://localhost:3000/#/verify-email/cnaTqQSCgYAksIsFo5FgmV94NHwrfaM2g5GvdZDUMlN

当我点击它时,似乎什么也没发生;它只是重定向到localhost:3000 /#

然而,当我删除#(http://localhost:3000/verify-email/cnaTqQSCgYAksIsFo5FgmV94NHwrfaM2g5GvdZDUMlN)时,这似乎完美无缺。

网址(http://localhost:3000/#/verify-email/cnaTqQSCgYAksIsFo5FgmV94NHwrfaM2g5GvdZDUMlN)来自Meteor,所以它不是我创建的。

这是我的路线和控制器(使用铁路由器)

Router.route('/verify-email/:_token', {
    controller : 'AccountController',
    action : 'verifyEmail'
});

AccountController = RouteController.extend({
    fastRender: true,
    data: function () {},
    onBeforeAction: function () {
        this.render('Loading');
        this.next();
    },

    verifyEmail: function() {
        var verificationToken = this.params._token;
        console.log(verificationToken);
        Accounts.verifyEmail(verificationToken,  function(error) {
           if (error) {
               console.log(error);
           } else {
               Router.go('/');
           }
        });

    }
});

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

冲突可能会连接到accounts-password包以及iron:router,如下所示:

... add a server file that overrides the urls with # paths that Meteor creates, so that the Iron-Router can work

(function () {
    "use strict";

    Accounts.urls.resetPassword = function (token) {
        return Meteor.absoluteUrl('reset-password/' + token);
    };

    Accounts.urls.verifyEmail = function (token) {
        return Meteor.absoluteUrl('verify-email/' + token);
    };

    Accounts.urls.enrollAccount = function (token) {
        return Meteor.absoluteUrl('enroll-account/' + token);
    };

})();

希望它能引导你朝着正确的方向前进。

相关问题