Intereting Posts

Auth не сохраняется в Laravel 5.2

У меня есть auth, делая это при входе в систему.

if (Auth::attempt($userdata)) { dd(Auth::user()); //this shows the user just fine, //which proves that the auth driver is working. return redirect()->intended('dashboard'); } 

Однако после перенаправления на приборную панель. Кажется, auth не сохраняется. Если я делаю dd(Auth::user()) или даже просто Auth::check() он возвращает null.

Вот маршрут:

 Route::group(['middleware' => ['web']], function () { Route::get('test',function(){ dd(Auth::user()); //returns null echo Auth::user()->name; // returns Trying to get property of non-object }); }); 

Что я делаю не так?

Странная вещь в том, что вчера вечером она работала. Это просто волшебным образом перестало работать.

Solutions Collecting From Web of "Auth не сохраняется в Laravel 5.2"

Просто добавьте промежуточное ПО «auth» к вашему «тестовому» маршруту и ​​попробуйте получить доступ к нему во время входа в систему. Он не должен давать вам никаких ошибок таким образом. Если вы попытаетесь получить к нему доступ без входа в систему, он должен перенаправить вас на любой маршрут, определенный в промежуточном программном обеспечении «auth».

Используя промежуточное ПО «auth», вы в основном гарантируете, что Auth :: user () всегда вернет правильный экземпляр пользователя.

Теперь, если это работает, вы можете быть уверены, что Laravel Auth действительно остается пользователем, и проблема находится где-то еще в вашем коде.

Я не заметил никаких проблем с классом Auth в Laravel.

Решение этого не является очевидным, особенно из старых версий laravel.
Благодаря этой ссылке. Аутентичная сессия убита в Ларавеле 5.2
Я смог его решить, поэтому я отправлю ответ, чтобы помочь другим, кто сталкивается с той же проблемой.

Изначально у меня это было только на моих маршрутах.

 Route::post('app/login', 'Auth\AuthController@doLogin'); Route::group(['middleware' => ['web','auth']], function () { Route::get('test',function(){ dd(Auth::user());// was always returning null }); }); 

Но, чтобы заставить логин сохраняться, я должен был это сделать

 Route::group(['middleware' =>[ 'web']], function () { Route::post('app/login', 'Auth\AuthController@doLogin'); }); Route::group(['middleware' => ['web','auth']], function () { Route::get('test',function(){ echo Auth::user()->name; }); }); 

По-видимому, любой маршрут, который собирается позвонить или зарегистрировать сеанс, должен использовать промежуточное ПО «web».