我是否需要将createUser代码放入流星方法中?

时间:2016-05-08 20:21:55

标签: javascript meteor meteor-accounts

我正在编写流星应用并处理我的用户注册模板。

目前,我在客户端上导入了以下代码:

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代码是否可以,或者我是否需要从服务器上导入的meteor方法调用此代码?在我看来,我认为用户可以根据自己的喜好注册不同的电子邮件/用户名,因此在客户端上使用代码与调用服务器之间的危害是什么。

欢迎思考。

2 个答案:

答案 0 :(得分:0)

<windowsAuthentication enabled="true"> <providers> <add value="NTLM" /> </providers> </windowsAuthentication> 旨在从客户端使用。它在将密码发送到服务器之前处理密码加密。

答案 1 :(得分:0)

您可以在客户端进行验证以节省时间,但理想情况下,您应该在服务器端以meteor方法编写代码,并通过Meteor.call()在客户端调用它。在你的情况下,我可以简单地使用chrome控制台添加用户,并可以将其循环到百万次以在数据库中添加随机内容。以这种方式欢迎Csrf攻击。在定义新的Mongo.Collection()时,还应指定collections.allow()和collections.deny()。您还应该从流星项目中删除自动发布和不安全的包。