我正在尝试使用多个警卫来制作 Laravel - 取决于身份验证类型。
当我通过 API 进行身份验证时,我想使用jwt
警卫。当我通过网络进行身份验证时,我想使用session
警卫。
我的config\auth.php
样子是这样的:
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
//'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
]
我的routes/web.php
样子是这样的:
Route::get('/', 'HomeController@index')->name('home');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
我的routes/api.php
样子是这样的:
Route::post('login', 'AuthController@login');
Route::get('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::get('me', 'AuthController@me');
我得到的是 API 身份验证工作正常,而网络却不行。我已经调试过了,似乎它总是在检查jwt
警卫。
Auth::routes()
有人可以帮我吗,如果可能或随叫随到,我该如何将警卫设置在路线上?