Новое хеширование пароля - перенаправить пользователей на сброс пароля при попытке входа - PullRequest
4 голосов
/ 24 июня 2019

Вот « обновление » В предыдущей версии моего проекта у нас не было надлежащего хеширования пароля. Поэтому я хочу использовать хеширование Laravel и пригласить пользователей создать новый пароль.

У меня есть новый столбец пароля в моей таблице пользователей. Если когда пользователь пытается войти в систему, новый пароль не существует (пустой столбец), мы автоматически делаем «сброс пароля». Я хотел бы знать, где сделать эту проверку:

class LoginController extends Controller
{
    public function login(Request $request)
    {
        //check if the user has an empty password
        //if yes
        redirect('/password/reset');

        //else
        //use normal login function
    }
}

Это правильное место? И нужно ли переписывать весь логин в "другом"? (извините, это основной вопрос)

1 Ответ

11 голосов
/ 24 июня 2019

Я предлагаю создать промежуточное программное обеспечение ( EnsurePasswordIsAdded в качестве примера) для вашего случая и не включать процесс проверки в контроллер, поскольку контроллер обычно содержит функции, которые взаимодействуют либо с базой данных, либо с внешним API чтобы предоставить пользователю ответ, который вам не подходит, вы просто фильтруете / проверяете запрос.

вот ссылка на документацию о промежуточном программном обеспечении в Laravel:

https://laravel.com/docs/5.8/middleware

Вот кодовое предложение:

 public function handle($request, Closure $next)
 {
    if ( !User::find($request->email)->hasPassword() ) {
        return redirect('password-reset')->with('email',$request->email);
    }
    return $next($request);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...