Проблема с авторизацией Laravel Breeze

 

Довольно необычная проблема, которую приходится наблюдать в пакетной авторизации Laravel Breeze. Зарегистрированные пользователи успешно авторизуются и все работает. Но по прошествии какого-то количества времени авторизация перестает работать сама собой и зарегистрированный пользователь не может авторизоваться на сайте даже если вводит верные логин и пароль. Помогает только смена пароля. Но после смены пароля через некоторое время проблема опять возникает. Таким образом приходится принудительно каждый месяц менять пароль. С точки зрения безопасности это может и хорошо, но с точки зрения удобства абсолютно ужасно. Эта проблема ярко выражена на хостинге Timeweb. На других хостингах не проверялось.

Точные причины проблемы разбирать и понимать времени не было. Глубоко копаться не стал. Поверхностно покопав, выяснил что проблема связана с опцией remember_token (галочка "Запомнить пароль" на странице авторизации) и соответствующим столбцом в таблице users базы данных сайта.

Для временного решения устранения проблемы можно отключить передачу remember_token из формы авторизации.

Для этого необходимо открыть файл LoginRequest и закомментировать или удалить передачу remember_token переменной в Auth::attempt. Выглядеть в итоге это будет так:

 

    //файл /app/Http/Requests/Auth/LoginRequest.php

        if (! Auth::attempt([
             'email' => $credentials['email'], 
             'password' => $credentials['password'], 
             'is_active' => 1,
             //remember_token makes unknown problems with auth if uncommented
             /*'remember_token' => $this->filled('remember')*/
         ])) {
            RateLimiter::hit($this->throttleKey());

            throw ValidationException::withMessages([
                'email' => __('auth.failed'),
            ]);
        }

  

 

Возможно, не самое лучшее решение, но на временное потянет.

Кейсы