Laravel sessions regenerating on every load

故事扮演 提交于 2019-12-03 22:35:58

My problem was that I had echo statements in my function. It was keeping the session from being properly created/stored.

I had an echo before my 'return Redirect' so the redirect didn't get the session...

public function login()
{
    // auth
    if (Auth::attempt(Input::only('email', 'password'), true))
    {
        return Redirect::route('companies.index');
    }
    // failed -> back to login
    return Redirect::back()->withErrors(['email' => 'Login failed.'])->withInput();
}

Details: http://brainwashinc.com/2014/02/17/laravel-sessions-not-working-in-4-1/

I had this exact problem and with almost identical environments as well. As you experienced as well what ended up working for me was starting a totally fresh Laravel 4.1 project and then copying everything over. However I did also find that by changing one config variable I was able to fix the problem:

In /app/config/session.php change the lifetime config item to something higher than 0. This fixed the issue for me.

I had this same issue and already changed my session values to the 4,1 version. I logged into our server and ran the composer update command, after it finished everything worked fine.

composer update

I spent a whole day with the same issue (session regenerated with almost every request), and could not find anything helpful online. Posting this here in case somebody has the same issue.

Basically the problem was that the session cookie was not set correctly due to template errors. So if you run into this, first check that the session cookie is set with every request via http headers.

In my case I wrongly used something like this in some of my templates:

@section('test')
<p>Some content here</p>
@endsection

This is wrong!

In Laravel 4 it needs to be @stop instead of @endsection:

@section('test')
<p>Some content here</p>
@stop

Using @endsection made the app not finish correctly, so no session cookie was set. There is no trace of anything being wrong in the logfiles however. BTW, this kind of error also leads to after-filters not being applied.

I also has this problem, and it turned out to be with outputting data early - I was already echoing some debug text in the controller action, and then tried setting a session variable for the first time - the session just wouldn't persist, and kept recreating each time - once I removed the output, it worked fine (and fine from then onwards)

I upgraded from Laravel 5.1 to 5.2 and had the issue of numerous sessions being created on every page load. It didn't matter which session driver I used, nor did changing anything in config make it work. (I tried every suggestion on every StackOverflow result produced by Google.)

The solution for me: remove "web" middleware from your routes. Apparently, web middleware is included automatically in 5.2+, so if your routes ALSO specify it, you wind up with multiple sessions being generated.

There are many reasons this can happen, I just ran into this problem myself. The fix for me was to change:

public function getAuthIdentifier()
{
    return $this->username;
}

to

public function getAuthIdentifier()
{
    return $this->getKey();
}

on the User model.

I've experienced issues related to this. The session file wasn't created every time but sometimes I just can't get the session variable displayed. After hours of experiments I found that the problem was related to Debugbar.

If you're using Debugbar and having session issues, disable it and try again to confirm. There's an issue reported here.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!