Symfony 4 会话过期太快
Posted
技术标签:
【中文标题】Symfony 4 会话过期太快【英文标题】:Symfony 4 session expire too soon 【发布时间】:2019-06-24 22:40:59 【问题描述】:即使我在config/packages/framework.yaml
中设置了几天,我与 Symfony 4.0 的 php 会话也很快过期。
framework:
...
session:
handler_id: ~
cookie_lifetime: 604800
...
当用户完成登录过程后,他可以在网站上导航,如果他在几分钟后返回,则无需再次登录。
但如果他在 1 或 2 小时后返回(不确切知道),则会话已过期,他必须重新登录。
似乎可行的解决方案之一是更改您在上面看到的内容:
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/sessions"
cookie_lifetime: 604800
不幸的是,该解决方案解决了开发环境中的问题,但一旦我在服务器上提取代码,应用程序就会崩溃。
【问题讨论】:
也许您没有权限更改服务器上的 php.ini:secure.php.net/manual/en/…symfony.com/doc/current/components/http_foundation/… 我如何知道我的 Symfony 配置文件是否覆盖了我的 php ini 文件? @myxaxa 【参考方案1】:问题已解决。
问题是 save_path。只需使用official Symfony Documentation 中建议的参数即可。这样,您的 cookie 将被正确存储。
session:
handler_id: session.handler.native_file
save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
cookie_lifetime: 604800
【讨论】:
以上是关于Symfony 4 会话过期太快的主要内容,如果未能解决你的问题,请参考以下文章
即使我正在工作,会话也会过期,会话生命周期,Ajax 和 Symfony2
如何在 Symfony 中延长会话 cookie 的生命周期?