key = $key; } /** * 验证token * * @return void */ public function valid() { // 允许 Authorization 头部通过 cors $jwt = $this->request->header('Authorization'); if (empty($jwt)) { throw new CatchException("未授权用户", 600); } $jwt = str_replace('Bearer ', '', $jwt); // try decode $this->decodeJwt($jwt); return Result::rest(true); } /** * 默认参数 * * @return mixed */ protected function params($validator = null, $name = '') { $params = $this->request->param($name, null, 'trim'); // 尝试校验 if (!is_null($validator)) { $this->validate($params, $validator); } return $params; } protected function only(array $names) { return $this->request->only($names); } /** * encodeJwt * * @param array|\stdClass $payload * * @return string */ protected function encodeJwt($payload) { return JWT::encode($payload, $this->key, 'HS256'); } /** * decodeJwt * * @param string $jwt * * @return \stdClass */ protected function decodeJwt($jwt) { return JWT::decode($jwt, new Key($this->key, 'HS256')); } }