在我的Meteor应用程序的管理员部分,我想为一个' PowerUser'来调用Account.CreateUser(..)。使用USERNAME_AND_OPTIONAL_EMAIL(或EMAIL_ONLY)然后发送sendVerificationEmail,这很有效......
Accounts.config(sendVerificationEmail:true);
但接下来我还想为一个' LocalUser'调用Account.CreateUser(..)使用USERNAME_ONLY而不是sendVerificationEmail,因为本地用户帐户不需要电子邮件。
Accounts.config(sendVerificationEmail:false);
我的问题是"错误:无法多次设置sendVerificationEmail
"当我第二次调用Accounts.config时。
答案 0 :(得分:2)
我发现配置到USERNAME_AND_OPTIONAL_EMAIL就足够了两种情况:
客户端上的一次性配置:
Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_OPTIONAL_EMAIL' });
服务器上的一次性配置:
Accounts.config({
sendVerificationEmail: true,
forbidClientAccountCreation: true
})
然后创建'LocalUser'的代码提供用户名和初始密码
var newUserId = Accounts.createUser({
username: username,
password: 'pw_for_' + username,
profile: {
name: name,
company: company
}
});
并向管理员提供这些值以与新的LocalUser进行通信,以便他们可以登录。由于没有电子邮件,因此无需发送验证电子邮件。
然后代码创建PowerUser,提供电子邮件(可选用户名)和无密码:
var newUserId = Accounts.createUser({
email: email,
profile: {
name: name,
company: company
}
});
然后我们发送注册电子邮件,以便PowerUser将收到设置其初始密码的链接:
var enroll = Accounts.sendEnrollmentEmail(newUserId);
就是这样!