Symfony 4 会话过早过期

Gab*_*oro 5 php authentication session-cookies symfony symfony4

即使我在config/packages/framework.yaml.

framework:

{...}
session:
    handler_id: ~
    cookie_lifetime: 604800
{...}
Run Code Online (Sandbox Code Playgroud)

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

但是,如果他在 1 或 2 小时后返回(不准确地知道),则会话已过期,他必须重新登录。

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

handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/sessions"
cookie_lifetime: 604800    
Run Code Online (Sandbox Code Playgroud)

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

Gab*_*oro 10

问题解决了

问题是save_path。只需使用官方 Symfony 文档中建议的参数。通过这种方式,您的 cookie 将被正确存储。

session:
    handler_id: session.handler.native_file
    save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
    cookie_lifetime: 604800
Run Code Online (Sandbox Code Playgroud)