composer require firebase/php-jwt
public function getToken()
{
$key = config('wx.jwt_key'); //这里是自定义的一个随机字串,应该写在config文件中的,解密时也会用,相当 于加密中常用的 盐 salt
$token = [
"iss" => "", //签发者 可以为空
"aud" => "", //面象的用户,可以为空
"iat" => time(), //签发时间
"nbf" => time(), //在什么时候jwt开始生效 (这里表示生成100秒后才生效)
"exp" => time() + 2592000, //token 过期时间
"uid" => 59440 //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
];
$jwt = JWT::encode($token, $key, "HS256"); //根据参数生成了 token
return json([
"token" => $jwt
]);
}
public function checkToken()
{
$token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJpYXQiOjE1NzU2MTQwNzcsIm5iZiI6MTU3NTYxNDA3NywiZXhwIjoxNTc4MjA2MDc3LCJ1aWQiOjU5NDQwfQ.Yj0zqZoDoA8FmWgpT_7zyaQXBWJU7fkHKpZhGXLIPOc";
$key = config('wx.jwt_key'); //上一个方法中的 $key 本应该配置在 config文件中的
try {
$info = JWT::decode($token, $key, ["HS256"]); //解密jwt
return json($info);
} catch (\Exception $e) {
return $e->getMessage();
}
}