bearerToken() ?? $request->token; // 这里入口一个debug模式打开时候可以直接用户id做token测试 if (config('app.debug') && stripos($token, "-")) { list($guard, $id) = explode('-', $token); auth()->guard($guard)->loginUsingId($id); return $next($request); } $token = PersonalAccessToken::findToken($token); if (!$token) { return $this->fail(StarterResponseCode::JWT_AUTH_FAIL); } $tokenable = $token->tokenable; $guards = config("auth.guards"); foreach ($guards as $k => $v) { if ($k != $guard) continue; if (!isset($tokenable->id) || empty($tokenable->id)) continue; $auth = auth()->guard($k)->loginUsingId($tokenable->id); if (!$auth) { continue; } if (get_class($auth) == get_class($tokenable)) { return $next($request); } } return $this->fail(StarterResponseCode::JWT_AUTH_FAIL); } }