Мне нужно аутентифицировать свои веб-маршруты, и я решил использовать это промежуточное ПО:
Route::group(['middleware' => ['auth:api']], function () {
Route::get('test', 'MainController@home');
Route::get('test1', 'MainController@home1');
});
Я отредактировал файл config/auth.php
, чтобы использовать мою защиту:
....
'guards' => [
'web' => [
'driver' => 'oauth2',
'provider' => 'users',
],
'api' => [
'driver' => 'oauth2',
'provider' => 'users',
'hash' => false,
],
],
...
Я определил oauth2в файле AuthServiceProvider
вот так:
Auth::extend('oauth2', function ($app, $name, array $config) {
// Return an instance of Illuminate\Contracts\Auth\Guard ...
return new OAuth2Guard(app(TokenUserProvider::class), $app->make('request'));
});
Этот код хорошо работает. Промежуточное программное обеспечение auth:api
выполняется, и пользователь проверяется.
Теперь, так как мне нужны сеансы, я хотел использовать промежуточное программное обеспечение auth:web
с тем же точным кодом. Но если я использую его, пользователь не проходит проверку подлинности, и он перенаправляется на страницу входа.
Я не знаю, почему. Охранники web
и api
используют один и тот же драйвер.