laravel - 在 Laravel 5.2 中删除服务器上的重复 session

标签 laravel session laravel-artisan laravel-5

它是关于什么的?

数据库 session 驱动程序现在包括 user_id 和 ip_address,因此您可以轻松清除给定用户的所有 session 。

问题是什么

<强> I checked this Article while reading what's new in Laravel 5.2

是否有任何博客清楚地解释了如何注销使用多个 IP 地址或使用多个浏览器通过同一 IP 地址创建的重复 session ?

最佳答案

据我所知,这没有困难。

此表中的示例数据如下所示:

Session table data

所以您这里有user_id、浏览器和上次事件时间戳。因此,如果您愿意,现在可以添加到 cron,例如运行以下查询:

select user_id, count(*) AS `total` FROM sessions GROUP by user_id HAVING count(*) > 1

这将为您提供具有多个 session 的用户,您将能够决定如何处理它们。例如,您可以删除这些用户的所有 session ,或者仅保留最后一个 session 并删除所有其他 session 。当然这取决于你。

当您从数据库中删除记录时,用户将需要再次登录,例如上面的例子,如果我删除了 Firefox 的 session ,我需要在 Firefox 中再次登录才能登录我的帐户。

编辑

请注意,默认情况下没有sessions 表(因为许多用户不会使用数据库 session 驱动程序)。要创建此表,您需要运行:

 php artisan session:table

上述命令将创建 session 迁移

然后你需要运行

 php artisan migrate

将此迁移应用到数据库

关于laravel - 在 Laravel 5.2 中删除服务器上的重复 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539599/

相关文章:

php - 在 Laravel 中创建和使用类

php - Laravel 验证 - 禁止请求参数的规则

php - 如何在路由中为多个参数实现 "defaults()"- Laravel

php - 使用 session 处理程序时出现交替类未找到错误

php - PHP session 何时结束?

linux 服务器创建缓存和 laravel 项目失败

php - 在 Laravel 8 中创建带有门面的自定义包

php - 检查cookie是否设置

php - 如果工作人员作为守护进程运行,Laravel 排队的作业不会出现在新遗物中

php - artisan 迁移——种子错误