12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace app\common\model;
- use Firebase\JWT\JWT;
- use Firebase\JWT\Key;
- class Jwttoken
- {
- //生成token
- public function createJwt($username)
- {
- $key = md5('key'); //jwt的签发密钥,验证token的时候需要用到
- $time = time();
- $expire = $time + 14400; //过期时间
- $token = array(
- "username" => $username,
- "iss" => "",//签发组织
- "aud" => "", //签发作者
- "iat" => $time, //签发时间
- "nbf" => $time, //生效时间
- "exp" => $expire
- );
- $jwt = JWT::encode($token, $key, 'HS256');
- return $jwt;
- }
- //校验jwt权限API
- public function verifyJwt($jwt)
- {
- $key = 'A6H1O#vJ*6QV3*sC';
- try {
- $jwtAuth = JWT::decode($jwt, new Key($key, 'HS256'));
- $authInfo = (array)$jwtAuth;
- $msg['status']=0;
- $msg['info']=$authInfo;
- return $msg;
- } catch (\Firebase\JWT\SignatureInvalidException $e) {
- return [
- 'status' => 10002,
- 'msg' => 'Token无效'
- ];
- exit;
- } catch (\UnexpectedValueException $e) {
- return [
- 'status' => 10005,
- 'msg' => $e->getMessage()
- ];
- exit;
- } catch (\DomainException $e) {
- return [
- 'status' => 10006,
- 'msg' => $e->getMessage()
- ];
- exit;
- } catch (\InvalidArgumentException $e) {
- return [
- 'status' => 10007,
- 'msg' => $e->getMessage()
- ];
- exit;
- } catch (\Firebase\JWT\ExpiredException $e) {
- //Token过期
- return [
- 'status' => 10003,
- 'msg' => '登录信息已超时,请重新登录'
- ];
- exit;
- } catch (Exception $e) {
- return [
- 'status' => 10004,
- 'msg' => '未知错误'
- ];
- exit;
- }
- }
- }
|