1. 使用composer require firebase/php-jwt 安装 或直接用:https://github.com/firebase/php-jwt下载 手动放入项目中,
2.将src下的4个PHP文件放入think下(我用的是thinkphp5.1)修改命名空间 namespase think;
3.创建控制器Login.php 和 ResponseJson.php
"", //签发者 可以为空
"aud"=>"", //面象的用户,可以为空
"iat" => config('jwt.lat'), //签发时间
"nbf" => config('jwt.nbf'), //在什么时候jwt开始生效 (这里表示生成10秒后才生效)
"exp" => config('jwt.exp'), //token 过期时间
"uid" => '12', //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
'password' => '123456',
'mobile' => '12345678901', // 电话号码
];
$jwtToken = JWT::encode($jwtData, $key);
return $this->jsonSuccessData([
'token' =>$jwtToken,
]);
}
}
jsonResponse($code,$message,$data);
}
// app接口请求成功的返回
public function jsonSuccessData($data = [])
{
return $this->jsonResponse(0,'success',$data);
}
// 返回一个json
private function jsonResponse($code,$message,$data = [])
{
$content = [
'code'=>$code,
'message'=>$message,
'data'=>$data,
];
return json_encode($content);
}
}
5.在config下创建jwt.php配置文件,在Login控制器中用 config('jwt.key');来调用配置参数,jwt.php代码如下
'yangguang', //自定义key的值
'lat' => time(), // 签发时间
'nbf' => time()+10, // 生效时间
'exp' => time()+24 * 3600 , // 过期时间
];
4.创建控制器Login.php 和 ResponseJson.php
"", //签发者 可以为空
"aud"=>"", //面象的用户,可以为空
"iat" => config('jwt.lat'), //签发时间
"nbf" => config('jwt.nbf'), //在什么时候jwt开始生效 (这里表示生成10秒后才生效)
"exp" => config('jwt.exp'), //token 过期时间
"uid" => '123', //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
'password' => '123456',
'mobile' => '13180808004',
];
$jwtToken = JWT::encode($jwtData, $key);
return $this->jsonSuccessData([
'token' =>$jwtToken,
]);
}
}
jsonResponse($code,$message,$data);
}
// app接口请求成功的返回
public function jsonSuccessData($data = [])
{
return $this->jsonResponse(0,'success',$data);
}
// 返回一个json
private function jsonResponse($code,$message,$data = [])
{
$content = [
'code'=>$code,
'message'=>$message,
'data'=>$data,
];
return json_encode($content);
}
}