多守卫原创
# guards
点击查看
'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
'worker' => [
'driver' => 'session', # 要使用 auth 必须要建立 session 的
'provider' => 'workers',
],
'worker-api' => [
'driver' => 'passport',
'provider' => 'workers',
],
'customer' => [
'driver' => 'session', # 要使用 auth 必须要建立 session 的
'provider' => 'customers',
],
'customer-api' => [
'driver' => 'passport',
'provider' => 'customers',
],
],
# 定义作用域
app/Providers/AuthServiceProvider.php
-> boot
Passport::tokensCan([
'api' =>'For Customer',
'worker' =>'For Worker'
]);
# 检查作用域
Passport 包含两个中间件,可用于验证传入的请求是否包含访问指定作用域的令牌。 使用之前,需要将下面的中间件添加到 app/Http/Kernel.php
文件的 $routeMiddleware
属性中:
'scopes' => \Laravel\Passport\Http\Middleware\CheckScopes::class,
'scope' => \Laravel\Passport\Http\Middleware\CheckForAnyScope::class,
# 路由服务
app/Providers/RouteServiceProvider.php
添加对应的
Route::middleware(['api','scope:customer'])
->prefix('api/v1')
->group(base_path('routes/api.php'));
Route::middleware(['api','auth:worker','scope:worker'])
->prefix('worker/api/v1')
->group(base_path('routes/worker.php'));
上次更新: 2022/08/23, 18:12:45