checkForToken($request); // 使用 try 包裹,以捕捉 token 过期所抛出的 TokenExpiredException 异常 // // 检测用户的登录状态,如果正常则通过 if (Auth::guard('admin')->check()) { $admin_id = Auth::guard('admin')->payload()['sub']; $time = Auth::guard('admin')->payload()['exp']; //var_dump(Auth::guard('admin')->payload()['nbf'],$time);exit; //刷新Token if(($time - time()) < 60*60 && ($time - time()) > 0){ $token = Auth::guard('admin')->refresh(); if($token){ $request->headers->set('Authorization', 'Bearer '.$token); }else{ return response()->json(['error_code'=>401,'msg'=>'token有误,请重新登录'],401); } // 在响应头中返回新的 token $respone = $next($request); if(isset($token) && $token){ $respone->headers->set('Authorization', 'Bearer '.$token); } return $respone; } //token通过验证 执行下一补操作 return $next($request); } return response()->json(['error_code'=>401,'msg'=>'未登录,请登录'],401); } }