2017-01-31 12 views
1

新しいlaravelバージョン5.4を確認した後、 "$user = User::create(request(['name', 'email','password']));"を使用すると、パスワードは自動的にパスワードを暗号化しません。それは私ですか、モデル作成メソッドでパスワードがデフォルトでハッシュされていません?私は覚えていないが、メソッド "作成"はすでにこれを行うと仮定isnt?ユーザーモデルの作成方法(bcrypt)

+0

いいえ、あなたのコードはありません。パスワードを確保するためにbcryt()を使用してAuthControllerでユーザーを作成するためのLaravelコード – Vikash

+0

デフォルトでは、パスワードはRegisterControllerでbcrypted!あなたはどこのコードを入手しましたか? – lewis4u

答えて

1

あなたはLaravelアプリケーションに含まれている内蔵のLoginControllerとRegisterControllerクラスを使用している場合、彼らは自動的に登録し、認証のためにbcryptのを使用しますLaravel Docs

で述べたように。

あなたはLaravelに出荷されRegisterController.phpを使用する場合は、あなたがここにコントローラーを登録チェック

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

を使用する必要が手動で他のHashパスワードする必要はありません。

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

+0

こんにちは、私の場合は、カスタムregistrationControllerを作成しています – Pedro

+0

これを 'extend'すると、https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.php あなたは、あなたは手動で暗号化する必要があります – PaladiN

0

ユーザーモデルでは、低機能、暗号化されたデフォルトのパスワード

public function setPasswordAttribute($value) 
     { 
      if($value != ""){ 
       $this->attributes['password'] = bcrypt($value); 
      } 
     } 
関連する問題