easyswoole使用jwt
- EasySwoole
- 时间:2020-12-23
- 365人已阅读
简介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