如何防止 Symfony 4 中的用户自动注销?

问题描述

用户使用我的 symfony 应用程序时,几分钟后用户自动注销,而他正在使用该应用程序。为了防止我改变了

config/packages/framework.yaml

framework:    
   session:
   cookie_lifetime: 86400
   gc_maxlifetime: 1800

这意味着 cookie 的生命周期设置为 24 小时。所以我希望用户只有在关闭浏览器时才会被注销。但实际上,他仍然在半小时左右后自动注销。我还可以尝试哪些其他选项?

解决方法

您是否尝试取消设置 gc_maxlifetime ? seem PHP 在此时间之后清除会话。此外,它的生命周期为 30 分钟,就像您注销的问题一样。

framework:
    session:
        cookie_lifetime: 86400

您绝对不应该将 gc_probability 设置为 null,否则 PHP 永远不会清理您的“死”会话,并且您的服务器在一段时间后将缺少磁盘空间。

此外,查看您的 php.ini 配置值也是值得的,因为如果它们未在 Symfony 配置中指定,PHP 将采用它们。

换句话说,如果您指定某些配置(there is a list of them),Symfony 将覆盖您的 PHP 配置