2017-02-09 6 views
1

Эй, ребята, я пытаюсь сделать заказ регистрационную форму пакета счетов-пароля, но я получаю сообщение об ошибке в консоли: Error invoking Method 'insertUser': Internal server error [500] и на стороне сервера:Метеор заказ создать пользовательскую форму

=> Meteor server restarted 
I20170209-20:25:53.029(1)? Exception while invoking method 'insertUser' ReferenceError: password is not defined 

Это мой стороне клиента код:

Template.Anmeldung.events({ 
    "submit .add-benutzer": function(event){ 
     var Vorname = event.target.Vorname.value; 
     var Nachname = event.target.Nachname.value; 
     var Geburtsdatum = event.target.Geburtsdatum.value; 
     var Email = event.target.Email.value; 
     var Passwort = event.target.Passwort.value; 

     Meteor.call('addBenutzer', Vorname, Nachname, Geburtsdatum, Vorname) 





     Meteor.call('insertUser', Email, Passwort); 





     event.target.Vorname.value = ""; 
     event.target.Nachname.value = ""; 
     event.target.Geburtsdatum.value = ""; 
     event.target.Email.value = ""; 
     event.target.Passwort.value = ""; 
     FlowRouter.go('/meineEvents'); 

     return false; 
    } 

}); 

и мой стороне сервера код:

Meteor.methods({ 
    insertUser(emailVar, paswordVar){ 
    Accounts.createUser(emailVar, passwordVar); 
    } 
}); 

чем k вы для каждой помощи;)

ответ

2

Это просто, что вы используете Accounts.createUser неправильно, это должно быть так:

Meteor.methods({ 
    insertUser(emailVar, paswordVar){ 
    Accounts.createUser({ 
     email: emailVar, 
     password: passwordVar 
    }); 
    } 
}); 
+0

спасибо теперь он работает :) – Michael

-1

Вам не нужно звонить Accounts.createUser на сервер в методе Метеор. На самом деле это опасно, потому что вы передаете пароль от клиента на сервер, не шифруя его.

Я рекомендую вам прочитать документацию для функций, которые вы используете: Link

В этом случае вы можете просто использовать делать

Template.Anmeldung.events({ 
    "submit .add-benutzer": function(event){ 
     var Vorname = event.target.Vorname.value; 
     var Nachname = event.target.Nachname.value; 
     var Geburtsdatum = event.target.Geburtsdatum.value; 
     var Email = event.target.Email.value; 
     var Passwort = event.target.Passwort.value; 

     Meteor.call('addBenutzer', Vorname, Nachname, Geburtsdatum, Vorname) 

     Accounts.createUser({ email: Email, password: Passwort} , (error) => { 
      if(error) { 
       alert(error.reason); 
      } 
     }); 

     [...] 
    } 

}); 

Как примечание стороны, в некоторых случаях вам нужно создать пользователь на сервере. В этих случаях вы можете использовать Accounts._hashPassword() на клиенте перед отправкой пароля на сервер. Это гарантирует, что пароль не отправляется простым текстом.