在Laravel 5.2中杀死服务器上的重复会话

时间:2015-12-31 00:57:45

标签: laravel session laravel-5 artisan laravel-5.2

它的含义是什么?

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

问题是什么

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

是否有任何博客明确说明了如何使用多个IP地址或使用多个浏览器使用相同的IP地址注销重复会话?

1 个答案:

答案 0 :(得分:3)

据我所知,这并不困难。

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

Session table data

所以你有user_id,浏览器和上次活动时间戳。因此,如果您需要,您现在可以添加到cron,例如运行以下查询:

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

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

当您从数据库中删除记录时,用户将需要再次登录,例如,如果我删除了我的Firefox会话,我需要再次登录Firefox以登录我的帐户。

修改

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

 php artisan session:table

以上命令将创建会话迁移

然后你需要运行

 php artisan migrate

将此迁移应用于数据库