我有一个具有多个防护功能的laravel 5.6.3应用程序,如下所示:
auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'users',
],
],
我使用admin
防护程序登录。
我将护照查看组件添加到只有管理员才能访问的页面,该页面具有以下路由:http://127.0.0.1:8000/admin/passport/
<passport-clients></passport-clients>
<passport-authorized-clients></passport-authorized-clients>
<passport-personal-access-tokens></passport-personal-access-tokens>
当我使用上述组件加载页面时,出现如下控制台错误:
http://127.0.0.1:8000/oauth/clients 401 (Unauthorized)
http://127.0.0.1:8000/oauth/tokens 401 (Unauthorized)
http://127.0.0.1:8000/oauth/personal-access-tokens 401 (Unauthorized)
http://127.0.0.1:8000/oauth/scopes 401 (Unauthorized)
如果我使用web
保护登录,并将上述vue组件添加到web
可访问的页面中,那么它将正常工作。
翻阅https://github.com/laravel/passport/blob/6.0/src/RouteRegistrar.php时,您会注意到路由器组仅具有web
和auth
,但是没有传递警卫的选项吗?
public function forClients()
{
$this->router->group(['middleware' => ['web', 'auth']], function ($router) {
//...
});
}
所以问题是,如果我以管理员身份登录,如何使它正常工作?