easyswoole使用jwt

简介easyswoole使用jwt
<?php


namespace App\HttpController\Index;

use EasySwoole\Http\AbstractInterface\Controller;
use EasySwoole\Jwt\Jwt;

class Index extends Controller
{
   //生成token
   public function getToken()
   {
       $jwtObject = Jwt::getInstance()
           ->setSecretKey('easyswoole') // 秘钥
           ->publish();

       $jwtObject->setAlg('HMACSHA256'); // 加密方式
       $jwtObject->setAud('user'); // 用户
       $jwtObject->setExp(time() + 3600); // 过期时间
       $jwtObject->setIat(time()); // 发布时间
       $jwtObject->setIss('easyswoole'); // 发行人
       $jwtObject->setJti(md5(time())); // jwt id 用于标识该jwt
       $jwtObject->setNbf(time() + 60 * 5); // 在此之前不可用
       $jwtObject->setSub('主题'); // 主题
       // 自定义数据
       $jwtObject->setData([
           'user_id' => 1,
//            'username' => "xxxx"
       ]);
       // 最终生成的token
       $token = $jwtObject->__toString();
       $this->response()->write($token);
   }

   //解析token
   public function parsingToken()
   {
       $token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDg3MTYzMzQsInN1YiI6IuS4u-mimCIsIm5iZiI6MTYwODcxMzAzNCwiYXVkIjoidXNlciIsImlhdCI6MTYwODcxMjczNCwianRpIjoiMmZlYWIwM2I0MTJhNTU1NDU1Zjg1MmY3NmU1MGM2OTAiLCJpc3MiOiJlYXN5c3dvb2xlIiwic3RhdHVzIjoxLCJkYXRhIjp7InVzZXJfaWQiOjF9fQ.u7Vy2_yf8BKEXazqc_TYa5FCBlORYX_On9J8SdYeO_8";
       try {
//            $jwtObject = Jwt::getInstance()->decode($token);

//            $status = $jwtObject->getStatus();
           // 如果encode设置了秘钥,decode 的时候要指定
//            $jwtObject = Jwt::getInstance();
           $jwtObject = Jwt::getInstance()->setSecretKey('easyswoole')->decode($token);
           $status = $jwtObject->getStatus();
           if ($status == 1) {
               $data = $jwtObject->getData();
//                return $this->response()->write($data['user_id']);
               var_dump($data);
           }else{
               var_dump($status);
           }

//
//            switch ($status) {
//                case  1:
//                    echo '验证通过';
//                    $jwtObject->getData();
//                    $jwtObject->getAlg();
//                    $jwtObject->getAud();
//                    $jwtObject->getData();
//                    $jwtObject->getExp();
//                    $jwtObject->getIat();
//                    $jwtObject->getIss();
//                    $jwtObject->getNbf();
//                    $jwtObject->getJti();
//                    $jwtObject->getSub();
//                    $jwtObject->getSignature();
//                    $jwtObject->getProperty('alg');
//                    break;
//                case  -1:
//                    echo '无效';
//                    break;
//                case  -2:
//                    echo 'token过期';
//                    break;
//            }
       } catch (\EasySwoole\Jwt\Exception $e) {


       }

   }

}

更多信息参考https://www.easyswoole.com/Cn/Components/Jwt/use.html

 

文章评论

共有0条评论来说两句吧...

用户名:

验证码:

Top