首页 > 解决方案 > 如何从 Laravel 的特定会话中注销用户?

问题描述

我正在尝试实现用户登录历史记录并允许用户从特定设备注销

我根据laravel 文档使用SESSION_DRIVER=databasesessions在数据库中有表

在此处输入图像描述

我有user_logins以下结构的表:

会话 ID |用户 ID | ip_address | 用户代理 | 浏览器名称 | 位置 | 登录名 | 活跃

我完全能够user_logins使用UserEventSubscriber handleUserLogin函数将上述信息存储在表中

现在我想从特定设备上注销用户,该怎么做?

我可以从user_logins表中删除条目ip_addressuser_agent但我也想从特定设备上注销该用户。

任何人请帮我解决这个问题。

标签: laravelsessionauthenticationlogoutlaravel-5.7

解决方案


将此方法放在您的控制器中并设置合适的路线来执行

public function removeSession($id){
    \Session::getHandler()->destroy($id);
    return redirect()->back();
}

推荐阅读