2017-02-09 10 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); 
    } 
}); 

より)あなたはすべての助けのためにあなたを助けます;)

答えて

2

、それはこのようになります。

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

はそれが動作するようになりましありがとう:) – Michael

-1

Meteorの方法でサーバー上でAccounts.createUserに電話する必要はありません。実際には、暗号化せずにクライアントからサーバーにパスワードを渡すので危険です。いくつかのケースでは、ユーザーを作成する必要があり、注意点として

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); 
      } 
     }); 

     [...] 
    } 

}); 

を行うLink

この場合はあなただけ使用することができます。

は、私はあなたが使用する機能のためのドキュメントを読むことをお勧めしますサーバー上でこのような場合は、パスワードをサーバーに送信する前にクライアント上でAccounts._hashPassword()を使用できます。これにより、パスワードがプレーンテキストで送信されないことが保証されます。それはあなたがAccounts.createUser間違っを使用することだけである