nazar-tertyshnyi
@nazar-tertyshnyi
Govnocoder

Есть ли способ изменить поля 'email' и 'password' при сбросе пароля пользователя?

Доброго времени суток.

Занимаюсь сбросом пароля пользователя (если этот нигадяй забыл его, либо что-то не так) и столкнулся с достаточно неприятной проблемой. Не могу обновить стандартное поле email, на, к примеру `user_mail`. Читал документацию, кроме вариантов "ну, сделайте php artisan make:auth и используйте маршруты" ничего не нашёл. Пытался гуглить - варианты написания своих брокеров и менеджеров. Нашёл один ответ, что там поля захардкожены (email, password, password_confirmation и token). Решил сам полезть в сорцы - и правда
protected function credentials(Request $request)
{
    return $request->only(
        'email', 'password', 'password_confirmation', 'token'
    );
}

protected function resetPassword($user, $password)
{
    $user->password = Hash::make($password);

    $user->setRememberToken(Str::random(60));

    $user->save();

    event(new PasswordReset($user));

    $this->guard()->login($user);
}

Глянул в другие версии (6, 7) - такая же ситуация, расположение только поменяли.

Возник вопрос, а есть варианты очень делликатно и просто это сделать, не создавая своих брокеров, менеджеров и подменяя в config/app провайдера? Имею ввиду, в рамках Auth\ResetPasswordController

Всем бобра и ключ на 13
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Как обойти поля, захардкоженые в классе, но не подменяя этот класс?

Хм, дай-ка подумать... О, точно! Никак.

Ну разве что написать свой кривой механизм сброса пароля, спагетти-кодом прям в контроллере, чтобы «не создавая своих брокеров, менеджеров».

Какого, блин, варианта ты ещё ожидаешь, если прям в доке написано, как это дело кастомизировать? Спойлер: в доке написано «кастомизируйте через подмену брокера».
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы