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字段 设置为可录入 然后勾选上重新生成即可
