Laravel 5.2 Auth::login 不保留已登录的用户

Laravel 5.2 Auth::login not persisting logged user

我有一个身份验证系统,它也有使用 Socialite 的社交登录。

问题是当我使用 Auth::login() 从社交媒体成功验证后登录用户时,会话在重定向后不会持续存在。

尽管我使用的是 web 中间件

这是我在 routes.php

中的代码
Route::group(['namespace' => 'Frontend', 'middleware' => 'web'], function () {
    Route::get('/', 'PagesController@index');
    Route::get('login/{provider?}', 'AuthController@getLogin');
    Route::post('login', 'AuthController@postLogin');
    Route::get('login/callback/google', 'AuthController@getGoogleCallback');
    Route::get('login/callback/facebook', 'AuthController@getFacebookCallback');    
});

例如,当用户在 Facebook 中成功通过身份验证时,我会在我的控制器中使用它

Auth::login($user);
return redirect()->to('/');

但在重定向后它给了我 null

我也将我的 User.php 移动到 app/Models/User.php 并在 config/auth.php 中进行了所有必要的更改。

您缺少主要路线的中间件 = auth。

Route::group(['namespace' => 'Frontend', 'middleware' => ['web','auth'], function () {
     Route::get('/', 'PagesController@index');    
});

基本上你的主路由应该有一个授权中间件而不是其他路由,因为来宾用户需要能够访问登录页面。