在我的Meteor应用程序中,我在/signup
处有一个需要用户名,密码和电子邮件的注册表单。提交此表单后,用户将通过Accounts.createUser()
自动登录该网站,并通过Accounts.config({sendVerificationEmail: true})
向用户的电子邮件地址发送电子邮件验证邮件。
就像我说的那样,用户此时会自动登录,但使用未经验证的电子邮件地址。问题是,一旦用户点击电子邮件中的电子邮件验证链接,他们就会转到/verify-email/:token
(例如http://domain.com/#/verify-email/35_7bRc_kXyUfRnlB7LB9NFGUyEDPH8E8pTPXKeDBY6),重定向到/
,并在此过程中的某个位置用户变成了LOGGED OUT。 Meteor.user()
会返回null
,因此我无法验证电子邮件地址,直到他们再次手动登录(然后我就可以处理令牌)。
为什么用户通过此链接注销?我注意到,只需在重定向到/
后刷新页面,用户就会重新登录(无需重新输入凭据)。如果它有帮助,请点击我的铁路由器文件:
/* Declare global router configurations */
Router.configure({
layoutTemplate: 'layout',
notFoundTemplate: 'noData',
});
/* Prevent templates from rendering before data is ready */
Router.onBeforeAction(function(pause) {
if (!this.ready()) {
pause();
}
});
/* Define routes */
Router.map(function() {
this.route('home', {
path: '/'
});
this.route('signup', {
});
this.route('login', {
});
this.route('forgot', {
});
this.route('ohlc', {
progress: {
enabled: true
},
controller: 'ohlcController'
});
//this.route('kitchensink', {});
this.route('404', {
path: '/*'
});
});
我是否需要其他路径/配置来处理/verify-email/:token
?谢谢!
答案 0 :(得分:0)
此问题线程解决了我的问题:https://github.com/EventedMind/iron-router/issues/3
似乎是铁路由器的已知问题,但该线程有一个解决方法。