我有一个身份验证系统,该系统也使用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
中进行了所有必要的更改。
您缺少主路由的中间件 = 身份验证。
Route::group(['namespace' => 'Frontend', 'middleware' => ['web','auth'], function () {
Route::get('/', 'PagesController@index');
});
基本上,您的主路由应该具有身份验证中间件,但没有其他路由,因为来宾用户需要能够访问登录页面。