我使用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'