php web token加密,thinkphp应用中 JWT token的加密解密

本文介绍了如何使用PHP实现JWT(JSON Web Tokens)的生成,包括编码用户信息、设置有效期,并提供了解密和获取payload的方法。同时,详细解释了如何从token参数和HTTP头部获取并验证JWT。
摘要由CSDN通过智能技术生成

实现token  方法:

private function xxxx ($entity) {

$tokenId = base64_encode(\Org\Util\Strings::uuid());

$issuedAt = time();

$notBefore = $issuedAt;

$expire = $notBefore + 86400;

$serverName = getHost();

//载荷

$payload = [

'iat' => $issuedAt,

'jti' => $tokenId,

'iss' => $serverName,

'nbf' => $notBefore,

'exp' => $expire,

'data' => [

'id' => $entity['id'],

'account' => $entity['account'],

'nickname' => $entity['nickname'],

'phone' => $entity['phone'],

'face' => $entity['face']

]

];

$key = C('API_AUTH_KEY');

$secretKey = base64_encode($key);

$token = JWT::encode($payload, $secretKey);

return $token;

}

其他地方可直接调用:$token = $this->xxxx ($userInfo);

解密很简单:

1、如果是直接拿到token参数:

$key = base64_encode(C('API_AUTH_KEY'));

$payload = JWT::decode($token, $key, array('HS256'));

$userInfo = object_array($payload->data);

2、通过请求头获取 token信息

$authinfo = apache_request_headers();

$key = base64_encode(C('API_AUTH_KEY'));

$payload = JWT::decode($authinfo['Authorization'], $key, array('HS256'));

$this->userInfo = object_array($payload->data);

JWT类库,网上自行下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>