检查用户是否有经过验证的电子邮件地址并在 Meteor 中重定向他们
Check if user has a verified email address and redirect them in Meteor
我需要查明触发 click. event
的用户是否有经过验证的电子邮件。如果 "true" 他应该被重定向到另一个页面,在那里他可以调用服务器端方法。如果 "false" 他应该被重定向到一个页面,他可以在该页面上单击一个按钮以重新向他发送新的验证 link。
我尝试使用在其他问题中找到的一些功能,但没有用。这是我的点击代码。事件和 if 函数不起作用:
"click. event": function(e){
e.preventDefault();
if (this.userId && Meteor.user().emails[0].verified)
{
Router.go('LinkToCallTheMethod');
}; else
{
console.log('Please verify email first');
Router.go('LinkToResentVerificationLink');
}
});
问题是没有任何反应。即使我将 emails[0].verified
字段中的布尔值更改为 'true' 或 'false'(无所谓,什么也没发生),用户也不会被重定向,但我也没有收到任何错误代码.
因此我认为问题出在if(...&& Meteor.user().emails[0].verified)
。还有其他方法可以查明电子邮件是否已验证吗?
您不能在客户端上使用this.userId。它只适用于服务器端。尝试使用 Meteor.userId() .
我需要查明触发 click. event
的用户是否有经过验证的电子邮件。如果 "true" 他应该被重定向到另一个页面,在那里他可以调用服务器端方法。如果 "false" 他应该被重定向到一个页面,他可以在该页面上单击一个按钮以重新向他发送新的验证 link。
我尝试使用在其他问题中找到的一些功能,但没有用。这是我的点击代码。事件和 if 函数不起作用:
"click. event": function(e){
e.preventDefault();
if (this.userId && Meteor.user().emails[0].verified)
{
Router.go('LinkToCallTheMethod');
}; else
{
console.log('Please verify email first');
Router.go('LinkToResentVerificationLink');
}
});
问题是没有任何反应。即使我将 emails[0].verified
字段中的布尔值更改为 'true' 或 'false'(无所谓,什么也没发生),用户也不会被重定向,但我也没有收到任何错误代码.
因此我认为问题出在if(...&& Meteor.user().emails[0].verified)
。还有其他方法可以查明电子邮件是否已验证吗?
您不能在客户端上使用this.userId。它只适用于服务器端。尝试使用 Meteor.userId() .