Laravel 5.2 - Как выйти из системы пользователя со всех его устройств
Когда пользователь вышел из устройства, подключенного к сети, я хочу выйти из всех устройств, в которые он входил до сих пор. Как я это делаю в Ларавеле.
Я использовал Redis для сохранения идентификатора пользователя в сеансе, установив «predis / predis»: «~ 1.0»
А вот мой контроллер для входа и выхода:
public function postSignIn(Request $request)
{
if (Auth::attempt(['email' => $request['email'], 'password' =>$request['password'] ]) ) {
$redis = \Redis::connection();
$userId=Session::getId();
$redis->sadd('users:sessions:'.$userId,Session::getId());
return redirect()->route('main');
}
return redirect()->back();
}
public function getLogout()
{
$redis = Redis::connection();
$userId=Session::getId();
$userSessions = $redis->smembers('user:sessions:' . $userId);
$currentSession = Session::getId();
foreach ($userSessions as $sessionId) {
if ($currentSession == $sessionId) {
continue;
}
$redis->srem('user:sessions:' . $userId, $sessionId);
$redis->del('laravel:' . $sessionId);
}
Auth::logout();
return redirect()->route('main');
}
Он успешно вошел в систему, а также вышел из нее, но не уничтожает весь сеанс на других устройствах.
Как мне решить проблему?