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');
});
基本上你的主路由应该有一个授权中间件而不是其他路由,因为来宾用户需要能够访问登录页面。
我有一个身份验证系统,它也有使用 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');
});
基本上你的主路由应该有一个授权中间件而不是其他路由,因为来宾用户需要能够访问登录页面。