"成功", 'ERR_EMPTY_PARAM' => "参数丢失", 'ERR_EMPTY_INPUT' => "请输入", 'ERR_PASSWORD_EMPTY_PARAM' => "请输入密码", 'ERR_ACCOUNT_EMPTY_PARAM' => "请输入手机号", 'ERR_ACCOUNT_PASSWORD' => "请输入正确的手机号和密码", 'ERR_USER_HAVE_LOCKED' => "账号已被冻结", 'ERR_USER_TOKEN_INVALID' => "请先登录", 'ERR_USER_TOKEN_EXPIRE' => "TOKEN已过期", 'ERR_USER_TOKEN' => "REFRESH_TOKEN错误", 'ERR_USER_REFRESH_TOKEN_EXPIRE' => "REFRESH_TOKEN已过期", 'ERR_ACCESS_TOKEN' => "access_token不存在或为空", 'ERR_APPID' => "appid错误", 'ERR_NONE' => "系统错误", 'ERR_DENY' => "拒绝请求", 'ERR_UPLOAD_FILE' => "文件上传失败,请重试", 'ERR_SMS_SEND' => "短信发送失败,请重试", 'ERR_ILLEGAL' => "非法请求", 'ERR_EMPLOYEE_BALANCE' => "用户账户异常", 'ERR_ERROR_PARAM' => "参数异常", 'ERR_ORDER_STATUS_ERROR' => "订单状态异常", ]; public static function getMessage($error) { return self::message[$error]; } /** * @var \think\Request Request实例 */ protected $request; protected $clientInfo; protected $uid; /** * 不需要鉴权方法 */ protected $noAuth = []; /** * 构造方法 * @param Request $request Request对象 */ public function __construct(Request $request) { parent::__construct(); //初始化系统常量 $system_constant = Cache::get("SYSTEM_CONSTANT"); if (!$system_constant) { $list = Db::name('constants')->column("param_value","param_name"); $system_constant = array(); foreach ($list as $k => $v) { $system_constant[$k] = json_decode($v,true); } Cache::set('SYSTEM_CONSTANT', $system_constant,120); } //注意区别于缓存,config方式只对当前请求有效 config('SYSTEM_CONSTANT',$system_constant); $this->request = $request; $this->init(); if(isset($this->clientInfo['client'])){ $this->uid = $this->clientInfo['client']['id']; $this->clientInfo = $this->clientInfo['client']; } } /** * 初始化 * 检查请求类型,数据格式等 */ public function init() { //所有ajax请求的options预请求都会直接返回200,如果需要单独针对某个类中的方法,可以在路由规则中进行配置 if ($this->request->isOptions()) { return self::returnMsg(200, 'success'); } $oauth = app('app\api\controller\OauthController'); //tp5.1容器,直接绑定类到容器进行实例化 $user_info = $oauth->authenticate(); if (!$oauth->match($this->noAuth)) { if($user_info){ if(isset($user_info['refresh_expires_time']) && $user_info['refresh_expires_time'] < time()){ return self::returnMsg(self::ERR_USER_REFRESH_TOKEN_EXPIRE,self::getMessage('ERR_USER_REFRESH_TOKEN_EXPIRE'),[]); } if(!isset($user_info['expires_time']) || $user_info['expires_time'] < time()){ return self::returnMsg(self::ERR_USER_TOKEN_EXPIRE,self::getMessage('ERR_USER_TOKEN_EXPIRE'),[]); } $getCacheAccessToken = $oauth->certification($oauth::getClient()); if(!$getCacheAccessToken){ return self::returnMsg(self::ERR_ACCESS_TOKEN,self::getMessage('ERR_ACCESS_TOKEN'),[]); } $this->clientInfo = $user_info; return $this->clientInfo; } return self::returnMsg(self::ERR_USER_TOKEN_INVALID,self::getMessage('ERR_USER_TOKEN_INVALID')); } $this->clientInfo = $user_info; return $this->clientInfo; } }