symfony2 session lifetime
I had a problem with symfony2 session component. I set 开发者_StackOverflow中文版some data to session through session container like this:
$sess = $this->get( 'session' );
$sess->set( 'some_key', 'some_value' );
But after a little bit of time (about 15-20 minutes) the session got lost.
Can I set session life time parameter? The perfect variant for me would be if I can set certain time of session live period...Can anybody please help?
You can set the session expiration time in your config file under the framework
section. Mine looks like this:
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%
cookie_lifetime: 3600 // was "lifetime" but deprecated
auto_start: true
You can change the framework.session.lifetime
value to anything you'd like, in seconds (it defaults to 3600, or 1 hour).
Reference here.
In Symfony 2.3 I think the right answer is found in app/config/config.yml:
framework:
session:
cookie_lifetime: 7200
gc_maxlifetime: 3600
GC (garbage collection) will be reset every time the server is hit, meaning if the user is active, he'll have 3600 to continue working. The cookie_lifetime
will force the user to log out in its limit. In this example, the user will have one hour to be inactive and will be forced out in 2 hours.
To work comfortably you can set in dev environment a cookie_lifetime to 0
, it means the cookie expires when the browser is closed.
File: config_dev.php
framework:
session:
cookie_lifetime: 0
精彩评论