如何在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