我不确定是什么原因造成的,但我的项目在开发中一直运行良好。
但是当我将它上传到 AppFog 时,突然我的 session/Auth() 不会保留。
身份验证适用于登录。所以用户可以登录,并将被重定向到他们的个人资料页面......然后他们可以从那里更新东西......
所以 Auth() 显然是在举行他们的会话,但奇怪的是,当他们点击网站上的其他任何地方时,远离他们的个人资料.....突然他们的会话丢失了。如果他们想导航回他们的个人资料,他们必须重新登录。
为什么这会发生在生产中而不是开发中。代码库完全相同。唯一的区别是我使用本地/生产数据库设置,就是这样。除此之外,其他一切都完全相同。
知道是什么原因造成的吗?通常我会检查 php.ini 等,但在 appfog 上,我怀疑您是否可以访问任何深层管理内容。
我应该从基于会话的身份验证切换到 Redis/数据库身份验证吗???还有其他人在 AppFog、Laravel 或 YII 上遇到过这个问题吗?
更新
从默认切换到数据库会话存储会产生一个奇怪的错误,即每次登录多个条目。这当然会使 Auth() 尝试失败。我通过删除会话表的 id 列上的 auto_increment 解决了这个问题。这修复了我的一个应用程序....以前在默认设置下工作。
有问题的其他应用程序仍然无法运行。它至少现在在登录尝试时只在会话表中创建 1 个条目,但由于某种原因,它没有创建登录 cookie 来与该表交叉引用。
在 Chrome 控制台中,在我拥有的工作应用程序的资源下...
laravel_session -> 6
这指的是会话表中的 id 6,因此它工作的原因。
然而,在非工作应用程序中......我有
laravel_session - > 41g1D4390Sd223s 等等
据我所知,这不是指任何东西....
对此有任何见解吗???