首页 > 解决方案 > 如何使 Laravel 中的特定会话无效(用户使用记住我功能)

问题描述

使用Laravel 5.1 和“文件”会话驱动程序

我试图通过session_id在数据库中记录他们的记录,为用户提供跟踪他们的会话并在他们希望的任何时候使他们无效的设施。对于数据库,我的意思是,我维护一个名为的表,该表与它们user_sessions相关联(由 获得)。user_idsession_idSession::getId()

因此,为了使会话无效,我尝试了以下代码,

$sessionId = Session::getId();
Session::setId($sessionId);
Session::invalidate();

对于用户不使用记住我功能的情况,它工作得非常好。

对于用户使用记住我功能的情况,上面的代码不起作用,因此,我另外尝试将remember_token字段设置为在此答案null中指定的此处,但是这样,用户的所有会话都会被破坏,包括当前会话。

标签: phplaravellaravel-5laravel-5.1

解决方案


你可以简单地使用

use Illuminate\Support\Facades\Session;

Session::forget('YOUR_SESSION_ID');

如果要获取当前会话 ID:

Session::driver()->getId();

我希望它有帮助


推荐阅读