2

它是关于什么的?

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

有什么问题

我在阅读 Laravel 5.2 中的新功能时查看了这篇文章

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

4

1 回答 1

3

据我所知,这没有什么困难。

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

会话表数据

所以你在这里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

将此迁移应用到数据库中

于 2015-12-31T07:21:56.120 回答