2017-02-09 49 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

你不需要在Meteor方法的服務器上調用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()。這確保密碼不會以純文本形式發送。