Symfony 4 会话过期太早

Symfony 4 session expire too soon

我与 Symfony 4.0 的 php 会话过期得太快,即使我在 config/packages/framework.yaml 中设置了几天也是如此。

framework:

{...}
session:
    handler_id: ~
    cookie_lifetime: 604800
{...}

当用户完成登录过程后,他可以在网站上导航,如果 return 几分钟后,他就不需要再次登录。

但是,如果他 return 在 1 或 2 小时后(不知道具体情况),会话已过期,他必须重新登录。

似乎有效的解决方案之一是更改您在上面看到的内容:

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

不幸的是,该解决方案解决了开发环境中的问题,但是一旦我将代码拉到服务器上,应用程序就崩溃了。

问题已解决.

问题是 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