После просмотра новой версии laravel 5.4 я замечаю, что при использовании «$user = User::create(request(['name', 'email','password']));
» пароль автоматически не шифруется паролем, это я, или это не пароль, хэшированный по умолчанию на методе создания модели ? Я не помню, но не предполагается, что метод «создать» уже делает это?Создать метод для пользовательской модели (bcrypt)
1
A
ответ
1
Как указано в Laravel Docs
Если вы используете встроенные классы LoginController и RegisterController, которые включены в приложение Laravel, они будут автоматически использовать Bcrypt для регистрации и аутентификации.
Если вы используете RegisterController.php
, поставляемую в Laravel вам не нужно Hash
пароль вручную еще вам нужно использовать
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']), //<==encrypt here
]);
Проверьте контроллер регистра здесь:
https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.php#L63
0
В модели пользователя вам необходимо добавить be be низкая функция, для пароля по умолчанию зашифрована.
public function setPasswordAttribute($value)
{
if($value != ""){
$this->attributes['password'] = bcrypt($value);
}
}
Нет, это может быть ваш код. Код Laravel для создания пользователя в AuthController с использованием bcryt() для защиты пароля – Vikash
По умолчанию пароль зашифрован в RegisterController! где вы получили эту строку кода ??? – lewis4u