检查用户是否有经过验证的电子邮件地址并在 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() .