Env::get('jwt_config.iss'), 'exp' => Env::get('jwt_config.exp') ]; $jwt = new Jwt($config); $route = strtolower($request->pathinfo()); $domain = strtolower($request->host()); if (in_array($route,Config::get('whitelist.route')) or in_array($domain,Config::get('whitelist.domain'))) { //表示此系列请求不需要鉴权,直接通行 return $next($request); } else { //此系列请求需要鉴权。 $loginToken = $request->header('x-token'); $result = $jwt->checkToken($loginToken); if ($result < 0) { switch ($result) { case -1: show(-1,"token异常"); break; case -2: show(-2,"token被篡改"); break; case -3: show(-3,"token验签异常"); break; case -4: show(-4,"token已过期"); break; } } elseif ($result === 200 || $result === 201) { // token通过 $adminInfo = $jwt->getUserInfo($loginToken); if (!isset($adminInfo['id'])) { show(-1001, '登录异常'); } if (empty($adminInfo) || $adminInfo['status'] == 1) { show(-1002, '登录异常'); } if ($result === 201) { $new_login_token = $jwt->getToken($adminInfo); $data = [ 'login_token' => $new_login_token, 'exp' => Env::get('jwt_config.exp') ]; header("Access-Control-Expose-Headers: X-Token-info"); header("X-Token-info: " . base64_encode(json_encode($data))); } $adminInfo['auth_id_list'] = [];//权限菜单下发 $request->admin_user_info = $adminInfo; return $next($request); } } } }