Php 20分钟不活动后,应用程序内的会话应过期
20分钟不活动后,应用程序内的会话应过期Php 20分钟不活动后,应用程序内的会话应过期,php,symfony,Php,Symfony,20分钟不活动后,应用程序内的会话应过期 如何在symfony2中执行此操作 在framework部分下的config.yml文件中设置session过期时间 config.yml framework: secret: %secret% charset: UTF-8 error_handler: null csrf_protection: enabled: true router: { resource: "%kernel.
如何在symfony2中执行此操作 在
framework
部分下的config.yml
文件中设置session
过期时间
config.yml
framework:
secret: %secret%
charset: UTF-8
error_handler: null
csrf_protection:
enabled: true
router: { resource: "%kernel.root_dir%/config/routing.yml" }
validation: { enabled: true, annotations: true }
templating: { engines: ['twig'] } #assets_version: SomeVersionScheme
session:
default_locale: %locale%
lifetime: 3600
auto_start: true
将会话:生存期的默认值(秒)更改为3600。本机会话存储使用cookie。处理会话的另一个示例是将会话存储在数据库中 Jayson的方法将导致会话在一小时后过期。您还可以随时强制用户注销,如下所示:
$this->container->get('request')->getSession()->invalidate();
$this->container->get('security.context')->setToken();
注意:自Symfony 2.6起,security.context服务已被弃用,并分为两个新服务:security.authorization\u checker和security.token\u storage
我认为gc\u maxlifetime与lifetime相同。。正确的?但是当用户处于非活动状态时如何注销此会话。是。如果调用垃圾收集处理程序,
PHP
将传递存储在PHP.ini
指令会话gc\u maxlifest
中的值。任何保存时间超过gc\u maxlifest
的存储会话都应被删除。这允许根据空闲时间终止记录。我在config.yml文件中添加了参数cookie_life:1200,但如果用户处于活动状态,则不应注销。仅当用户处于非活动状态20分钟时注销。我应该怎么做?设置cookie生存期是不合适的,因为客户端可以对其进行操作,因此您必须在服务器端执行到期。最简单的方法是通过合理频繁运行的垃圾收集来实现这一点。cookie\u生存期
将被设置为相对较高的值,垃圾收集gc\u maxlifest
将被设置为在任何所需的空闲时间销毁会话。您好,我在config.yml文件中设置了gc_maxlife或cookie_life变量的时间,但即使用户处于活动状态,它仍然会注销应用程序。这意味着根据Jayson的方法,仅在配置文件中设置life参数,会话会在特定时间后自动注销吗?或者其他应该编写的代码?对。杰森的方法是“设定它,然后忘记它”。)但是,您也可以选择手动注销用户。虽然它实际上是cookie\u life:3600
我在config.yml文件中添加了参数cookie\u life:1200,但如果用户处于活动状态,则不应注销。仅当用户处于非活动状态20分钟时注销。我该怎么办?