问题
我想清除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