I've set 'lifetime' => 10
in my session config file, but it doesn't expire at all.
In laravel 3 with that setting, after logging in, when limit of 10 minutes is exceeded, the session expires properly and user is redirected to login again.
In laravel 4 it doesn't happen. After 10 minutes I can refresh, do anything and still session is valid.
I'm testing both on the same machine with analogical settings... What am I missing?
You need to understand what happened: You've set the lifetime of the sessions to 120 minutes, which means after 120 minutes the session is flushed. The remember_me feature is using cookies. If there is no user session Laravel checks the cookies and recreates the session if the session cookie is still valid.
If you want to increase your session life time then we need to change in . env file and it is very easy to change it from configuration file in laravel. laravel provides you session. php file there is we can see 'lifetime' key option for setting time in minutes.
I've got it. The problem was with the config pair lifetime
and expire_on_close
.
If expire_on_close
is set to true, laravel 4 will ignore lifetime
. I had:
'lifetime' => 1,
'expire_on_close' => true,
and in this case, session was valid after 1 min - it would only expire after closing browser. I changed it to:
'lifetime' => 1,
'expire_on_close' => false,
and now session is expiring after 1 min. no matter if browser is closed or not - close enough to what I've wanted.
The reason why I was confused and haven't figured it out earlier was that the comments there are unclear in that matter and that in Laravel 3 it worked differently...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With