【发布时间】:2018-09-17 14:21:20
【问题描述】:
我有一个表单,用户可以在其中输入他们的电子邮件地址和密码到加入表单中。这将创建帐户,但我现在想进一步开发它。
client.js:
Template.joinForm.events({
'submit .form-join': function(e, t) {
e.preventDefault();
var email = t.find('#email').value,
password = t.find('#password').value,
username = Random.id(),
array = [],
profile = {
nameOfArray: array
};
Accounts.createUser({
email: email,
username: username,
password: password,
profile: profile
}, function(error) {
if (error) {
alert(error);
} else {
Router.go('/');
}
});
}
});
在创建用户帐户之前,您如何:
检查 joinForm 中的
email变量是否不存在于Meteor.users集合中。在服务器上处理这个?如果
email确实存在,那么拒绝用户创建?
我看到了新功能,想知道我是否可以使用这个http://docs.meteor.com/#/full/accounts_validatenewuser
Accounts.validateNewUser(function (user) {
// pseudo if statement code
if (email not exist) {
// 1. create the user account and then
Accounts.sendVerificationEmail(userId, [email])
} else {
throw new Meteor.Error(403, "email address is already registered");
}
});
感谢您阅读本文。
我不清楚是使用Accounts.createUser 还是Accounts.onCreateUser,哪些代码应该在客户端,哪些在服务器。我的目标是安全地建立帐户,因此,在此过程中从控制台拒绝任何其他修改权限。
【问题讨论】:
标签: javascript meteor