guards修改
修改config/auth.php,在guards中增加所需内容,例如
1 2 3 4 5 6 7 8 9 10 11 12
| 'guards' => [ 'admin' => [ 'driver' => 'jwt', 'provider' => 'admins', ],
'user' => [ 'driver' => 'jwt', 'provider' => 'users', 'hash' => false, ], ],
|
增加auth中相应providers
1 2 3 4 5 6 7 8 9 10 11
| 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ],
'admins' => [ 'driver' => 'eloquent', 'model' => App\Models\Admin::class, ], ],
|
路由中指定走自己的中间件
1 2 3 4 5
| // 这种写法含义是走名为admin的guard,并且使用auth.admin中间件 Route::group(['middleware' => 'auth.admin:admin'], function () { Route::get('admin/changePassword', [AdminIndexController::class, 'changePassword']); Route::get('admin/exams', [AdminExamController::class, 'index']); });
|
实现自己的AuthAdmin中间件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class AuthAdmin { public function handle(Request $request, Closure $next) { if (!auth('admin')->check()) { return response()->json([ 'code' => 401, 'msg' => '登录信息错误', ]); }
if (auth('admin')->user()->token != JWTAuth::getToken()) { return response()->json([ 'code' => 401, 'msg' => '请重新登录', ]); }
$request->user = auth('admin')->user();
return $next($request); } }
|