在 Laravel 5.2 中终止服务器上的重复会话
Kill duplicate Sessions on Server in Laravel 5.2
这是关于什么的?
数据库会话驱动程序现在包括 user_id 和 ip_address,因此您可以轻松清除给定用户的所有会话。
有什么问题
I checked this Article while reading what's new in Laravel 5.2
是否有任何博客清楚地说明如何注销使用多个 IP 地址或使用多个浏览器通过同一 IP 地址创建的重复会话?
据我所知,这没有任何困难。
此 table 中的示例数据如下所示:
因此您在此处 user_id
、浏览器和上一个 activity 时间戳。因此,如果您愿意,现在可以添加到 cron,例如 运行ning 以下查询:
select user_id, count(*) AS `total` FROM sessions GROUP by user_id HAVING count(*) > 1
这将为您提供多个会话的用户,您将能够决定如何处理他们。例如,您可以删除这些用户的所有会话,或者只保留最后一个并删除所有其他会话。这当然取决于你。
当您从数据库中删除记录时,用户将需要再次登录,例如,如果我删除了 Firefox 的会话,我需要在 Firefox 中再次登录才能登录我的帐户。
编辑
请注意,默认情况下没有 sessions
table(因为许多用户不会为会话使用 database
驱动程序)。要创建此 table,您需要 运行:
php artisan session:table
以上命令将创建会话迁移
然后你需要运行
php artisan migrate
将此迁移应用到数据库中
这是关于什么的?
数据库会话驱动程序现在包括 user_id 和 ip_address,因此您可以轻松清除给定用户的所有会话。
有什么问题
I checked this Article while reading what's new in Laravel 5.2
是否有任何博客清楚地说明如何注销使用多个 IP 地址或使用多个浏览器通过同一 IP 地址创建的重复会话?
据我所知,这没有任何困难。
此 table 中的示例数据如下所示:
因此您在此处 user_id
、浏览器和上一个 activity 时间戳。因此,如果您愿意,现在可以添加到 cron,例如 运行ning 以下查询:
select user_id, count(*) AS `total` FROM sessions GROUP by user_id HAVING count(*) > 1
这将为您提供多个会话的用户,您将能够决定如何处理他们。例如,您可以删除这些用户的所有会话,或者只保留最后一个并删除所有其他会话。这当然取决于你。
当您从数据库中删除记录时,用户将需要再次登录,例如,如果我删除了 Firefox 的会话,我需要在 Firefox 中再次登录才能登录我的帐户。
编辑
请注意,默认情况下没有 sessions
table(因为许多用户不会为会话使用 database
驱动程序)。要创建此 table,您需要 运行:
php artisan session:table
以上命令将创建会话迁移
然后你需要运行
php artisan migrate
将此迁移应用到数据库中