Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 20分钟不活动后,应用程序内的会话应过期_Php_Symfony - Fatal编程技术网

Php 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.

20分钟不活动后,应用程序内的会话应过期


如何在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分钟时注销。我该怎么办?