[ 'class' => ContentNegotiator::className(), 'formats' => [ 'application/json' => Response::FORMAT_JSON ], ], 'verbFilter' => [ 'class' => VerbFilter::className(), 'actions' => $this->verbs(), ], 'rateLimiter' => [ 'class' => RateLimiter::className(), ], ]; } /** * 所有小程序端的API请求均需要调用handleMallAccessCtrl * @param \yii\base\Action $action * @return bool * @throws \yii\web\BadRequestHttpException */ public function beforeAction($action) { if (!parent::beforeAction($action)) { return false; } // 必须在父类beforeAction之后执行接口访问控制处理 $this->handleAccessCtrl(); return true; } /** * @throws Exception */ public function init() { parent::init(); $this->request = Yii::$app->getRequest(); $this->response = Yii::$app->getResponse(); } /** * 所有省采接口的统一处理函数: 检查token访问令牌有效性 * @return bool */ protected function handleAccessCtrl() { /*$result = new stdClass(); $result->success = false; // 必须使用post请求 if (!$this->request->isPost) { $result->desc = "please_use_post_httP_request"; exit(json_encode($result)); } // 检查请求参数token是否存在 $token = $this->request->post('token'); if (empty($token)) { $result = new stdClass(); $result->success = false; $result->desc = "token_not_exist"; exit(json_encode($result)); } // 检查请求参数token是否过期 $findAccessTokenModel = OauthAccessTokensModel::findOne(['access_token' => $token]); if ($findAccessTokenModel) { $expiredAt = strtotime($findAccessTokenModel->expires); if (time() <= $expiredAt) { return true; } } $result->desc = "token_expired"; exit(json_encode($result));*/ } }