Meteor AccountTemplates/UserAccounts - 如何在电子邮件上运行验证码验证?

问题描述:

我有一些我想在用户验证他们的电子邮件后运行的代码。Meteor AccountTemplates/UserAccounts - 如何在电子邮件上运行验证码验证?

我会在哪里放?

我能想到的唯一的地方就是重定向的路线,但这有点冒失,并且依靠用户等待重定向发生。我正在使用铁路由器。

这是我第一次尝试,但重新计算功能是服务器端。

AccountsTemplates.configureRoute('verifyEmail', { 
    redirect: function(){ 
    var user = Meteor.user(); 
    if (user) { 
     user.recalculateSignUpReputation(); 
     Router.go('home'); 
    } 
    } 
}); 

Here's a solution observing a cursor但这似乎是矫枉过正。我更喜欢一个事件。解决方案#1不适合我。

+0

难道你不能直接在电子邮件验证路线?即用户从他们的电子邮件中点击链接,并且当您的网站执行该路线时,您会触发任何必要的操作? –

+0

@BrettMcLain UserAccounts/AccountsTemplates正在管理那条路线,除非我错了。你什么意思? –

+0

如何使用[matb33:collection-hooks](https://atmospherejs.com/matb33/collection-hooks)并将更新挂钩到用户对象?你可以看到'verified'标志从false变为true。 –

感谢您的意见。我最终这样做了。

AccountsTemplates.configureRoute('verifyEmail', { 
    redirect: function(){ 
    var user = Meteor.user(); 
    if (user) { 
     Meteor.call('recalculateSignUpReputation'); 
     Router.go('home'); 
    } 
    } 
}); 

它工作在客户端,并调用服务器端代码。不是很棒,但有效。如果您有不同的/更好的方式,我会将其标记为正确的答案。