Когда я регистрации нового пользователя в рамках Laravel, я сейчас делаю это так,Laravel 5,1 Bcrypt и Войти
// Creating a new user
$user = new User;
$user->firstname = $data['firstname'];
$user->lastname = $data['lastname'];
$user->email = $data['email'];
$user->password = bcrypt($data['password']);
$user->save();
Это прекрасно работает, и я могу войти в приложение , Однако я хочу, чтобы у пользователя была возможность изменить свои пароли на странице настроек. Сделав это, я использовал ту же технику, используя
$newPass = bcrypt($response->new_password);
и обновление поля пользователя. Однако, после этого, я не могу войти? Я использую встроенную службу аутентификации в laravel для регистрации/входа в систему.
Что я здесь делаю неправильно? и должен ли я сделать это по-другому?
Я также попытался закодировать мой текущий пароль, и я получил совершенно другой хэш, чем тот, который хранится в базе данных.
Это так запутано ..
Обновлен код контроллера
// Validation
$this->validate($request, [
'email' => 'email',
'password' => 'min:8|confirmed',
'current_password' => 'required',
]);
// Getting the user ID
$userId = Auth::id();
// Dummy hack check, change later.
if(!Auth::attempt(['id' => $userId, 'password' => $request->current_password]))
{
return redirect('settings')->with('alert','current password is wrong.');
}
// Everything is validated and ok to proceed
if($request->email)
{
$data['email'] = $request->email;
}
if($request->password)
{
$data['password'] = bcrypt("helloworld");
}
$user = User::where('id',$userId)->update($data);
dd($data);
выгрузить данные для входов,
+request: ParameterBag {#40 ▼
#parameters: array:5 [▼
"_token" => "JQIIuCjiKQmbK0X5zCM6czYD1vIoh4PGjLO4qrFm"
"email" => "[email protected]"
"password" => "thisisnewpass"
"password_confirmation" => "thisisnewpass"
"current_password" => "helloworld"
]
}
Вы сохранили пользователя после установки нового пароля? – BrokenBinary
Да, база данных обновлена. – Sweepy
Является ли пользователь до сих пор вошел в систему до того, как вы изменили пароль? – BrokenBinary