我需要将 createUser 代码放在流星方法中吗?
Do I need to put createUser code in a meteor method?
我正在编写一个 meteor 应用程序并处理我的用户注册模板。
目前我在客户端导入了以下代码:
Template.register.events({
'submit form': function(event){
event.preventDefault();
let username = $('[id=input-username').val();
let email = $('[id=input-email]').val();
let password = $('[id=input-password]').val();
Accounts.createUser({
username: username,
email: email,
password: password
}, function(error){
if(error){
Bert.alert( "That username or email is either taken or invalid. Try again.", 'danger', 'growl-top-right' );
// console.log(error.reason);
}
else {
FlowRouter.go('mainLayout');
}
});
}
});
我的问题是,可以在客户端上使用 Accounts.createUser 代码吗?还是我需要从服务器上导入的流星方法中调用它?在我看来,我认为用户可以使用不同的电子邮件/用户名注册任意多次,因此将代码放在客户端与调用服务器相比有什么危害。
欢迎提出想法。
CreateUser
旨在从客户端使用。它在将密码发送到服务器之前处理密码的加密。
您可以在客户端进行验证以节省时间,但理想情况下,您应该在服务器端以 meteor 方法编写代码,并在客户端通过 Meteor.call() 调用它。在你的情况下,我可以简单地使用 chrome 控制台添加用户,并且可以将它循环到百万次以在你的数据库中添加随机内容。 Csrf 攻击通常以这种方式受到欢迎。在定义新的 Mongo.Collection() 时,还应指定 collections.allow() 和 collections.deny()。您还应该从 meteor 项目中删除 autopublish 和 insecure 包。
我正在编写一个 meteor 应用程序并处理我的用户注册模板。
目前我在客户端导入了以下代码:
Template.register.events({
'submit form': function(event){
event.preventDefault();
let username = $('[id=input-username').val();
let email = $('[id=input-email]').val();
let password = $('[id=input-password]').val();
Accounts.createUser({
username: username,
email: email,
password: password
}, function(error){
if(error){
Bert.alert( "That username or email is either taken or invalid. Try again.", 'danger', 'growl-top-right' );
// console.log(error.reason);
}
else {
FlowRouter.go('mainLayout');
}
});
}
});
我的问题是,可以在客户端上使用 Accounts.createUser 代码吗?还是我需要从服务器上导入的流星方法中调用它?在我看来,我认为用户可以使用不同的电子邮件/用户名注册任意多次,因此将代码放在客户端与调用服务器相比有什么危害。
欢迎提出想法。
CreateUser
旨在从客户端使用。它在将密码发送到服务器之前处理密码的加密。
您可以在客户端进行验证以节省时间,但理想情况下,您应该在服务器端以 meteor 方法编写代码,并在客户端通过 Meteor.call() 调用它。在你的情况下,我可以简单地使用 chrome 控制台添加用户,并且可以将它循环到百万次以在你的数据库中添加随机内容。 Csrf 攻击通常以这种方式受到欢迎。在定义新的 Mongo.Collection() 时,还应指定 collections.allow() 和 collections.deny()。您还应该从 meteor 项目中删除 autopublish 和 insecure 包。