关于Meteor中的自定义电子邮件验证

时间:2015-04-30 17:11:59

标签: meteor

我试图在meteor中编写自己的自定义身份验证表单。对于电子邮件验证部分,系统会发送一封电子邮件,其中附有路由和令牌。但是,我想在验证页面中获取令牌,所以我厌倦了以下

Accounts.onEmailVerificationLink(function(token, done) {
  console.log("hello");
  Session.set(verifyEmailToken, token); 
  doneCallback = done; 
});
Template.emailVerified.onCreated(function(){
  console.log(Session.get(verifyEmailToken));
  Accounts.verifyEmail(Session.get(verifyEmailToken),function(err){
    if(err){
      Session.set(ERROR_KEY,err.reason);
    }else{
      Session.set(SUCESS_KEY,"Your email has been verified, thank you!");
      if (doneCallback) {
           doneCallback();
      }
    }
  });
});

但是Accounts.onEmailVerificationLink方法似乎没有被调用过。我错过了吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

试试这个:

服务器代码:

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

公共/两个路由器:

AccountController = RouteController.extend({
    verifyEmail: function() {
        Accounts.verifyEmail(this.params.token, function(err) {
            if (err) {
                // error
            } else {
                //  
            }
        });
    }
});




Router.map(function() {
    return this.route('verifyEmail', {
        controller: 'AccountController',
        path: '/verify/:token',
        action: 'verifyEmail'
    });
});