Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 4 session doesn't expire after lifetime limit

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?

like image 894
Tom Avatar asked Jun 26 '14 07:06

Tom


People also ask

How long does a laravel session last?

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.

How do I increase my session lifetime in laravel?

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.


1 Answers

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

like image 138
Tom Avatar answered Sep 20 '22 14:09

Tom