api接口当设置token认证时请求接口出现参数错误
我们直接以api接口 账号密码登录生成为例子说明 接口生成设置如下
生成的代码如下
/** * @api {post} /Member/login 01、账号密码登录 * @apiGroup Member * @apiVersion 1.0.0 * @apiDescription 账号密码登录 * @apiParam (输入参数:) {string} username 登录用户名 * @apiParam (输入参数:) {string} password 登录密码 * @apiParam (失败返回参数:) {object} array 返回结果集 * @apiParam (失败返回参数:) {string} array.status 返回错误码 201 * @apiParam (失败返回参数:) {string} array.msg 返回错误消息 * @apiParam (成功返回参数:) {string} array 返回结果集 * @apiParam (成功返回参数:) {string} array.status 返回错误码 200 * @apiParam (成功返回参数:) {string} array.msg 返回成功消息 * @apiSuccessExample {json} 01 成功示例 * {"status":"200","msg":"操作成功"} * @apiErrorExample {json} 02 失败示例 * {"status":"201","msg":"操作失败"} */ function login(){ $data = $this->request->post(); if(empty($data['username']) || empty($data['password'])) return json(['status'=>$this->errorCode,'msg'=>'账号或者密码不能为空']); try{ $res = MemberService::login($data); }catch(\Exception $e){ Log::error('错误:'.print_r($e->getMessage(),true)); return json(['status'=>$this->errorCode,'msg'=>$e->getMessage()]); } if($res){ $ret = ['status'=>$this->successCode,'data'=>$res,'token'=>$this->setToken($res['member_id'])]; }else{ $ret = ['status'=>$this->errorCode,'msg'=>'登录失败']; } Log::info('接口返回:'.print_r($ret,true)); return json($ret); }
正常的看代码生成的没问题 登陆请求也没问题 但是例如查看会员信息时总是提示参数错误
为什么会这样???
如果跟着代码走 会发现token解码出来的 uid为空 因为我们登陆的时候 并没有返回用户id 也没有将用户id编码到token里面去 所以 token解码还原用户id的时候 就无法还原出来
我们只需要设置用户id字段 设置为可录入 然后勾选上重新生成即可