首页 > 解决方案 > 为什么 laravel 5.8 不能在专用网络上使用数据库会话驱动程序登录?

问题描述

设置:

当我尝试登录时,我可以看到会话表中正在创建条目(尽管 IP 列是来自专用网络的 10.0.0.0/24 负载均衡器),XXX_session还在浏览器中创建了一个 cookie,但用户永远不会登录并返回登录。

如果我改用 cookie 驱动程序,则不会发生这种情况。

这个问题和答案.env听起来很有希望,因为它提到了编辑会话配置,但遗憾的是laravel 5.8 直接从.

问题:怎么回事,是不是因为 laravel 将私有 IP 而不是真实用户 IP 写入数据库?如果是这种情况,我该如何强制它写入我从 cloudflare 获得的真实用户 IP?


编辑:

2019 年 10 月 7 日:将 IP 更改为我在数据库中的外部 IP 不会让我登录,即使我绕过负载均衡器也是如此。

标签: phpdatabaselaravelreplicationlaravel-5.8

解决方案


感谢laracasts 的 mlewis,这个问题已经解决了:

一种可能性是,如果您已将 users 表上的 id 记录更改为 uuids(字符串)而不是 int,那么您需要更改会话表迁移以反映在 user_id 列上。前几天自己遇到了这个。

如果您的 users 表的 id 列为uuid(),则 session 表列user_id也必须是uuid()


推荐阅读