В Laravel 8 функция «запомнить меня» используется для запоминания состояния входа пользователя даже после того, как он закрывает браузер или уходит с веб-сайта. Обычно это реализуется с помощью файлов cookie. Вот несколько методов, которые вы можете использовать для реализации функции «запомнить меня» в Laravel 8, а также примеры кода:
-
Использование метода
remember()
на фасадеAuth
:if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { // Authentication successful }
В этом примере переменная
$remember
представляет собой логическое значение, указывающее, должна ли функция «запомнить меня» быть включена или нет. -
Установка токена запоминания вручную:
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { $user = Auth::user(); if ($remember) { $rememberToken = Str::random(60); $user->forceFill([ 'remember_token' => hash('sha256', $rememberToken), ])->save(); Cookie::queue('remember_token', $rememberToken, 525600); // Set the cookie to last for 1 year (525600 minutes) } // Authentication successful }
В этом примере мы генерируем случайный токен запоминания, сохраняем его в столбце
remember_token
пользовательской таблицы, а также устанавливаем его как файл cookie со сроком действия 1 год. -
Использование метода
Auth::viaRemember()
в промежуточном программном обеспеченииAuthenticate
:public function handle($request, Closure $next) { if (Auth::viaRemember()) { // User authenticated via "remember me" cookie } return $next($request); }
Этот метод проверяет, прошел ли пользователь аутентификацию с помощью файла cookie «запомнить меня».