【问题标题】:How To Logout user from specific session in Laravel?如何从 Laravel 的特定会话中注销用户?
【发布时间】:2019-11-13 18:36:15
【问题描述】:

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

我使用SESSION_DRIVER=database 并在数据库中有sessions 表 根据laravel documentation

我有user_logins 具有以下结构的表:

session_id |user_id | ip_address |用户代理 |浏览器名称 | 位置 |登录名 | is_active

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

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

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

请大家帮我解决这个问题。

【问题讨论】:

    标签: laravel session authentication logout laravel-5.7


    【解决方案1】:

    将此方法放入您的控制器并设置合适的执行路径

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

    【讨论】:

    • 访问这个laravel.com/docs/5.8/session当你在数据库中存储会话时表名应该是sessions
    • 是的,我有 2 个表,sessions user_logins 用于保存设备登录历史记录
    【解决方案2】:
    public function authLogoutForOccGolf(Request $request) {
        $request->session()->flush();       
        return redirect('/');       
    }
    

    【讨论】:

    • 这将刷新当前登录用户的所有会话,我想删除登录多个设备的用户的单个会话
    猜你喜欢
    • 2014-05-12
    • 2020-11-16
    • 2014-08-08
    • 2016-08-22
    • 2016-08-14
    • 2018-03-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    相关资源
    最近更新 更多