2017-01-31 4 views
1

Nach dem Betrachten der neuen Laravel Version 5.4 merke ich bei der Verwendung von "$user = User::create(request(['name', 'email','password']));" das Passwort ist nicht automatisch das Passwort, bin ich es, oder ist das Passwort hashed standardmäßig auf der Modell erstellen Methode ? Ich erinnere mich nicht, aber soll die Methode "create" das nicht schon machen? Erstellen Methode auf Benutzermodell (bcrypt)

+0

Nein, es könnte Ihr Code sein. Laravel-Code zum Erstellen eines Benutzers in AuthController mit bcryt() zum Sichern des Passworts – Vikash

+0

Standardmäßig ist das Passwort in RegisterController verschlüsselt! Woher hast du diese Codezeile? – lewis4u

Antwort

1

Wie in den Laravel Docs angegeben

Wenn Sie die eingebauten in LoginController und RegisterController Klassen verwenden, die mit Ihrer Laravel Anwendung enthalten ist, werden sie automatisch Bcrypt für die Registrierung und Authentifizierung verwenden.

Wenn Sie RegisterController.php verwenden, die in Laravel ausgeliefert brauchen Sie nicht zu Hash Passwort manuell sonst müssen Sie verwenden

return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), //<==encrypt here 
     ]); 

das Register-Controller überprüfen hier:

https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.php#L63

+0

hallo, in meinem Fall im Erstellen eines benutzerdefinierten RegistrierungController – Pedro

+0

Wenn Sie diese https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.php Sie "erweitern" t brauchen Sie sonst müssen Sie manuell verschlüsseln – PaladiN

0

Im Benutzermodell müssen Sie hinzufügen Low-Funktion, für Standard-Passwort verschlüsselt.

public function setPasswordAttribute($value) 
     { 
      if($value != ""){ 
       $this->attributes['password'] = bcrypt($value); 
      } 
     }