当我开始使用Symfony 4时, 我注意到的第一个问题肯定是会话cookie的默认生存期, 默认情况下, 该生存期不会超过10分钟。你可以使用cookie_lifetime设置轻松更改cookie的持续时间, 但是你需要知道还需要配置Symfony的handler_id, 否则你将使用默认的PHP会话机制, 有时这不是最好的选择至少在使用Symfony时。
如Symfony的官方文档中所述:
【如何在Symfony 4中更改会话cookie的生存期(会话过期太早)】将handler_id config选项设置为null意味着Symfony将使用本机PHP会话机制。会话元数据文件将存储在Symfony应用程序外部, 位于PHP控制的目录中。尽管这通常可以简化操作, 但是如果其他写入同一目录的应用程序的最大生存期设置很短, 则某些与会话到期相关的选项可能无法按预期工作。
最好的解决方案是使用Symfony的本机文件会话管理器, 你基本上将会话存储在/ var / sessions /目录中, 就是这样, 寿命选项将再次起作用。你可以像这样在会话块中快速修改你的framework.yaml文件:
# project/config/framework.yamlframework:session:handler_id: session.handler.native_filesave_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'# 2 Days lifetime (172800 seconds)cookie_lifetime: 172800cookie_secure: 'auto'cookie_samesite: 'lax'
保存对此文件的更改后, 清除项目的缓存, 然后继续测试你的cookie是否持续指定的时间。
编码愉快!
推荐阅读
- 如何在Symfony 1.4中使用sfErrorNotifierPlugin通过电子邮件自动报告异常
- 如何使用C#将XML文件/字符串渲染到Winforms中的TreeView组件中
- 考试实验室的首选(思科CCNA R&S考试准备的Web资源)
- 如何从硬盘驱动器恢复数据
- 为什么使用Salesforce DX对所有应用程序开发人员都很重要()
- spring|SpringBoot集成 WebService
- spring源码分析|spring初始化过程源码分析
- 使用与Android库提供的/ compileOnly依赖项
- 不通过执行Java Applikation在ARM上加载JDBC库