Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Meteor中有条件地跳过发送电子邮件验证?_Meteor - Fatal编程技术网

如何在Meteor中有条件地跳过发送电子邮件验证?

如何在Meteor中有条件地跳过发送电子邮件验证?,meteor,Meteor,我已经用sendVerificationEmail:true配置了我的服务器,这是我在一般情况下想要的。然而,在某些情况下,我不希望Meteor发送验证电子邮件。相反,我希望以编程方式将电子邮件标记为已验证 我已经试着在Wuser钩子里做了 Accounts.validateNewUser(function(user) { user.emails[0].verified = true; return true; }); 在onCreateUser钩子中 Accounts.onCreat

我已经用
sendVerificationEmail:true
配置了我的服务器,这是我在一般情况下想要的。然而,在某些情况下,我不希望Meteor发送验证电子邮件。相反,我希望以编程方式将电子邮件标记为已验证

我已经试着在Wuser钩子里做了

Accounts.validateNewUser(function(user) {
  user.emails[0].verified = true;
  return true;
});
在onCreateUser钩子中

Accounts.onCreateUser(function(options, user) {
  user.emails[0].verified = true;
  return user;
});

两者都没有成功。尽管电子邮件被标记为已验证,Meteor仍会发送验证电子邮件。

通过
sendVerificationEmail:false禁用自动电子邮件验证,并在您希望验证电子邮件的情况下手动执行此操作

var email = user.emails[0].address;
Accounts.sendVerificationEmail(userId, email);

问题是我不知道何时调用
sendVerificationEmail
。我无法在
onCreateUser
回调中执行此操作,因为用户在那里还不存在(即,我得到一个“错误:找不到用户”)。您可以在使用
Meteor.setTimeout(函数(){sendVerification…},10000)调用
onCreateUser
后不久执行此操作内部
onCreateUser