Symfony2-会话存储不工作


Symfony2 - Session storage not working

我使用FOSUserBundle和HWIoauthBundle开发了一个symfony2应用程序,用于处理用户登录和注册。在localhost环境中一切正常。

在生产服务器上,缓存和日志文件夹是可写的,缓存被清除(也使用预热命令),资产被安装。

该应用程序似乎也能工作,我可以从数据库中看到内容,并可以在不需要用户登录的地方插入数据。

尝试使用已知用户/通行证登录只会返回到同一登录页面,不会出现任何错误。注册新用户会返回csfr令牌无效的错误。CSFR令牌可用作表单中的隐藏字段。

我在网上搜索了最后几个小时,找到了任何类似的错误,但没有一个有用的答案。

生产服务器是一台与Nginx代理并行运行的linux机器。

如果您需要查看任何配置,请询问我,以便我提供。

推理更多关于错误的本质,登录时没有响应,令牌不正确。。看起来像是会话问题。

事实证明,php.ini中的会话存储配置的回退并不是防故障的。所以我在config.yml:中添加了下面的代码

session:
    handler_id: session.handler.native_file
    save_path: "%kernel.root_dir%/sessions"

然后,添加文件夹"sessions"并清除prod-env的缓存。现在它正常工作。

希望这能帮助到其他人!

这可能是一个边缘情况,但当一位同事将"session_prefix"更改为其中有空格的值时,我丢失了会话存储。

session_prefix: 'This will break'