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

时间:2015-05-05 05:47:02

标签: php symfony

在不活动20分钟后,会话应该在应用程序中过期。

我如何在 symfony2 中执行此操作。

2 个答案:

答案 0 :(得分:1)

session部分下的config.yml文件中设置framework到期时间。

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

将默认值为session: lifetime的值更改为3600。

答案 1 :(得分:1)

原生会话存储使用Cookie。处理会话的另一个例子是将它们存储在数据库中。

Jayson的方法会导致会话在一小时后过期。您也可以随时强制注销用户:

$this->container->get('request')->getSession()->invalidate();
$this->container->get('security.context')->setToken();

注意:从Symfony 2.6开始,不推荐使用security.context服务并将其拆分为两个新服务:security.authorization_checker和security.token_storage。

Link to framework configuration for session