如何在 Meteor 创建用户时获取用户 ID?
How to get user ID during user creation in Meteor?
我正在使用 Meteor 启动功能在服务器上创建默认用户。我想创建一个用户并在启动时验证 his/her 电子邮件(我假设您只能在创建帐户后执行此操作)。
这是我的:
Meteor.startup(function() {
// Creates default accounts if there no user accounts
if(!Meteor.users.find().count()) {
// Set default account details here
var barry = {
username: 'barrydoyle18',
password: '123456',
email: 'myemail@gmail.com',
profile: {
firstName: 'Barry',
lastName: 'Doyle'
},
roles: ['webmaster', 'admin']
};
// Create default account details here
Accounts.createUser(barry);
Meteor.users.update(<user Id goes here>, {$set: {"emails.0.verified": true}});
}
});
正如我所说,我假设必须先创建用户,然后再将已验证标志设置为真(如果此声明为假,请提供在创建用户时使标志为真的解决方案)。
为了将电子邮件验证标志设置为真,我知道我可以在创建后使用 Meteor.users.update(userId, {$set: {"emails.0.verified": true}});
更新用户。
我的问题是,我不知道如何获取新创建用户的用户 ID,我该怎么做?
您应该能够访问从 Accounts.createUser() 函数返回的用户 ID:
var userId = Accounts.createUser(barry);
Meteor.users.update(userId, {
$set: { "emails.0.verified": true}
});
或者,您可以通过 Accounts.onCreateUser() 函数访问新创建的用户:
var barry = {
username: 'barrydoyle18',
password: '123456',
email: 'myemail@gmail.com',
profile: {
firstName: 'Barry',
lastName: 'Doyle'
},
isDefault: true, //Add this field to notify the onCreateUser callback that this is default
roles: ['webmaster', 'admin']
};
Accounts.onCreateUser(function(options, user) {
if (user.isDefault) {
Meteor.users.update(user._id, {
$set: { "emails.0.verified": true}
});
}
});
我正在使用 Meteor 启动功能在服务器上创建默认用户。我想创建一个用户并在启动时验证 his/her 电子邮件(我假设您只能在创建帐户后执行此操作)。
这是我的:
Meteor.startup(function() {
// Creates default accounts if there no user accounts
if(!Meteor.users.find().count()) {
// Set default account details here
var barry = {
username: 'barrydoyle18',
password: '123456',
email: 'myemail@gmail.com',
profile: {
firstName: 'Barry',
lastName: 'Doyle'
},
roles: ['webmaster', 'admin']
};
// Create default account details here
Accounts.createUser(barry);
Meteor.users.update(<user Id goes here>, {$set: {"emails.0.verified": true}});
}
});
正如我所说,我假设必须先创建用户,然后再将已验证标志设置为真(如果此声明为假,请提供在创建用户时使标志为真的解决方案)。
为了将电子邮件验证标志设置为真,我知道我可以在创建后使用 Meteor.users.update(userId, {$set: {"emails.0.verified": true}});
更新用户。
我的问题是,我不知道如何获取新创建用户的用户 ID,我该怎么做?
您应该能够访问从 Accounts.createUser() 函数返回的用户 ID:
var userId = Accounts.createUser(barry);
Meteor.users.update(userId, {
$set: { "emails.0.verified": true}
});
或者,您可以通过 Accounts.onCreateUser() 函数访问新创建的用户:
var barry = {
username: 'barrydoyle18',
password: '123456',
email: 'myemail@gmail.com',
profile: {
firstName: 'Barry',
lastName: 'Doyle'
},
isDefault: true, //Add this field to notify the onCreateUser callback that this is default
roles: ['webmaster', 'admin']
};
Accounts.onCreateUser(function(options, user) {
if (user.isDefault) {
Meteor.users.update(user._id, {
$set: { "emails.0.verified": true}
});
}
});