tp6使用token验证

首先安装

composer require firebase/php-jwt

使用

use \Firebase\JWT\JWT;
if (!function_exists('signToken')) {//生成验签function signToken($uid){$key='!@#$%*&';         //这里是自定义的一个随机字串,应该写在config文件中的,解密时也会用,相当    于加密中常用的 盐  salt$token=array("iss"=>$key,        //签发者 可以为空"aud"=>'',          //面象的用户,可以为空"iat"=>time(),      //签发时间"nbf"=>time()+3,    //在什么时候jwt开始生效  (这里表示生成100秒后才生效)"exp"=> time()+2000, //token 过期时间"data"=>[           //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对'uid'=>$uid,]);//  print_r($token);$jwt = JWT::encode($token, $key, "HS256");  //根据参数生成了 tokenreturn $jwt;}
}if (!function_exists('checkToken')) {//验证tokenfunction checkToken($token){$key='!@#$%*&'; $status=array("code"=>2);try {JWT::$leeway = 60;//当前时间减去60,把时间留点余地$decoded = JWT::decode($token, $key, array('HS256')); //HS256方式,这里要和签发的时候对应$arr = (array)$decoded;$res['code']=1;$res['data']=$arr['data'];return $res;} catch(\Firebase\JWT\SignatureInvalidException $e) { //签名不正确$status['msg']="签名不正确";return $status;}catch(\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用$status['msg']="token失效";return $status;}catch(\Firebase\JWT\ExpiredException $e) { // token过期$status['msg']="token失效";return $status;}catch(Exception $e) { //其他错误$status['msg']="未知错误";return $status;}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部