'gouguoa', 'iss' => 'www.gougucms.com', //签发者 可选 'aud' => 'gouguoa', //接收该JWT的一方,可选 'exptime' => 7200, //过期时间,这里设置2个小时 ]; /** * 构造方法 * @access public * @param App $app 应用对象 */ public function __construct(App $app) { $this->app = $app; $this->request = $this->app->request; $this->module = strtolower(app('http')->getName()); $this->controller = strtolower($this->request->controller()); $this->action = strtolower($this->request->action()); $this->uid = 0; $this->did = 0; $this->jwt_conf = get_system_config('token'); // 控制器初始化 $this->initialize(); } // 初始化 protected function initialize() { // 检测权限 $this->checkLogin(); //每页显示数据量 $this->pageSize = Request::param('page_size', \think\facade\Config::get('app.page_size')); } /** *验证用户登录 */ protected function checkLogin() { $session_admin = get_config('app.session_admin'); $header = Request::header(); // 取消登录验证 if (!Session::has($session_admin)) { $this->apiError('用户未登录'); } if (Session::has($session_admin)) { $this->uid = Session::get($session_admin); $login_admin = Db::name('Admin')->where(['id' => $this->uid])->find(); $this->did = $login_admin['did']; View::assign('login_admin', $login_admin); } } /** * Api处理成功结果返回方法 * @param $message * @param null $redirect * @param null $extra * @return mixed * @throws ReturnException */ protected function apiSuccess($msg = 'success', $data = []) { return $this->apiReturn($data, 0, $msg); } /** * Api处理结果失败返回方法 * @param $error_code * @param $message * @param null $redirect * @param null $extra * @return mixed * @throws ReturnException */ protected function apiError($msg = 'fail', $data = [], $code = 1) { return $this->apiReturn($data, $code, $msg); } /** * 返回封装后的API数据到客户端 * @param mixed $data 要返回的数据 * @param integer $code 返回的code * @param mixed $msg 提示信息 * @param string $type 返回数据格式 * @param array $header 发送的Header信息 * @return Response */ protected function apiReturn($data, int $code = 0, $msg = '', string $type = '', array $header = []): Response { $result = [ 'code' => $code, 'msg' => $msg, 'time' => time(), 'data' => $data, ]; $type = $type ?: 'json'; $response = Response::create($result, $type)->header($header); throw new HttpResponseException($response); } }