个性化阅读
专注于IT技术分析

如何在Symfony 4中更改会话cookie的生存期(会话过期太早)

当我开始使用Symfony 4时, 我注意到的第一个问题肯定是会话cookie的默认生存期, 默认情况下, 该生存期不会超过10分钟。你可以使用cookie_lifetime设置轻松更改cookie的持续时间, 但是你需要知道还需要配置Symfony的handler_id, 否则你将使用默认的PHP会话机制, 有时这不是最好的选择至少在使用Symfony时。

如Symfony的官方文档中所述:

将handler_id config选项设置为null意味着Symfony将使用本机PHP会话机制。会话元数据文件将存储在Symfony应用程序外部, 位于PHP控制的目录中。尽管这通常可以简化操作, 但是如果其他写入同一目录的应用程序的最大生存期设置很短, 则某些与会话到期相关的选项可能无法按预期工作。

最好的解决方案是使用Symfony的本机文件会话管理器, 你基本上将会话存储在/ var / sessions /目录中, 就是这样, 寿命选项将再次起作用。你可以像这样在会话块中快速修改你的framework.yaml文件:

# project/config/framework.yaml
framework:

    session:
        handler_id: session.handler.native_file
        save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
        # 2 Days lifetime (172800 seconds)
        cookie_lifetime: 172800
        cookie_secure: 'auto'
        cookie_samesite: 'lax'

保存对此文件的更改后, 清除项目的缓存, 然后继续测试你的cookie是否持续指定的时间。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在Symfony 4中更改会话cookie的生存期(会话过期太早)

评论 抢沙发

评论前必须登录!