Как я могу закрыть текущую сессию в laravel? - PullRequest
0 голосов
/ 04 марта 2020

Мне нужно закрыть текущую сессию. Я пытаюсь реализовать logi c, когда пользователь входит в систему через другое устройство (другой браузер), все сеансы с вашим идентификатором будут закрыты, и когда он войдет в систему через старый браузер, он go перейдет на страницу авторизации. Как я могу это сделать?

1 Ответ

0 голосов
/ 04 марта 2020

Если вы хотите выйти из системы с других устройств, кроме текущего браузера, выполните следующие действия:

Шаг 1: Раскомментируйте свойство \Illuminate\Session\Middleware\AuthenticateSession::class из $middlewareGroups в app/Http/Kernel.php файл, потому что это промежуточное ПО, которое управляет пользователем sessions в Laravel.

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        ...
        \Illuminate\Session\Middleware\AuthenticateSession::class,
        ...
    ],
    ...
];

Step2: Далее, вы можете использовать метод logoutOtherDevices в Auth facade, который принимает пароль пользователя в качестве единственного аргумента. В вашем LoginController

use Illuminate\Support\Facades\Auth;
protected function authenticated($request, $user) { 
    Auth::logoutOtherDevices($request("password")); //add this
}
...