Laravel:从应用程序注销/清除所有用户的所有会话


Laravel: Logout/clear all sessions for all users from app

问题

我想清除Laravel应用程序中所有用户的全部会话。

我尝试过的

我知道Auth::logout()会注销单个用户,但不会注销所有用户。我还尝试过从storage/framework/sessions中删除会话文件。两者都不起作用。

我正在为运行Laravel 5.2的会话使用内置的身份验证(例如Auth)和文件驱动程序。

如何有效地强制所有已登录用户注销,以便他们必须再次登录?

值得注意的是,Laravel实际上只将活动会话存储在会话文件夹中;那些被"记住"但没有主动访问您的应用程序的会话不在这些会话中。因此,仅仅删除文件并不能完成任务。

您还必须从users表中清除所有Remember令牌,因为此令牌与cookie中存储的本地令牌一起使用,以便在用户重新连接时重新创建会话。

在app/session.php中,您可以更改cookie值,因此用户将自动注销,因为cookie与配置不匹配

只需使用以下命令重新生成APP_KEY。

php artisan key:generate

这将重新生成APP_KEY,该APP_KEY将用于加密和解密cookie。由于更改,所有cookie都将失效。用户必须再次登录。

备用:

您还可以通过以下命令刷新所有缓存:

php artisan cache:clear