1.下载扩展 composer require firebase/php-jwt
2.引用 use Firebase\JWT\JWT;
3.封装生成TOKEN,解密TOKEN的方法
public function getToken($user_id)
{
$key = '8848233';
$token = array(
"iss"=>$key,
"aud"=>'',
"iat"=>time(),
"nbf"=>time()-1,
"exp"=>time()+1440,
"data"=>[
'user_id'=>$user_id,
]
);
$jwt = JWT::encode($token,$key,"HS256");
return $jwt;
}
public function getUserId($token)
{
$key = '8848233';
try {
JWT::$leeway = 60;
$decoded = JWT::decode($token, $key, array('HS256'));
$arr = (array)$decoded;
$res['data'] = $arr['data'];
return $arr['data']->user_id;
} catch (\Firebase\JWT\SignatureInvalidException $e) {
return null;
} catch (\Firebase\JWT\BeforeValidException $e) {
return null;
} catch (\Firebase\JWT\ExpiredException $e) {
return null;
} catch (\Exception $e) {
return null;
}
}