PHP技巧:如何解析JWT

🧙‍♂️ 诸位好,吾乃诸葛妙计,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。

📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。

📄 吾之文章,不以繁复之言,惑汝耳目;但以浅显之语,引汝入胜

🚀 若此文对阁下有所裨益,敬请👍🏻-点赞 ⭐ - 收藏 👀 - 关注,不胜感激。

 在 PHP 中,你可以使用 firebase/php-jwt 库来解析和验证带有 “Bearer” 的 JWT 令牌。首先,你需要通过 Composer 安装这个库:

composer require firebase/php-jwt

安装完成后,可以使用以下代码来解析和验证 JWT:

<?php
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;
use \Firebase\JWT\Key;

// 假设你从 HTTP 请求的 Authorization 头部获得了完整的令牌字符串
$authHeader = 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';

// 提取令牌
if (preg_match('/Bearer\s(\S+)/', $authHeader, $matches)) {
    $token = $matches[1];
} else {
    // 处理错误:无法找到令牌或格式不正确
    die('No token found or invalid format');
}

// 假设 'secret' 是用来签名 JWT 的密钥
$secretKey = 'secret';

try {
    // 解码 JWT
    $decoded = JWT::decode($token, new Key($secretKey, 'HS256'));
    
    // 在这里,$decoded 是一个对象,包含了 JWT 的有效载荷
    print_r($decoded);
    
} catch (\Firebase\JWT\ExpiredException $e) {
    // 处理错误:令牌过期
    die('Expired token');
} catch (\Firebase\JWT\SignatureInvalidException $e) {
    // 处理错误:签名无效
    die('Invalid signature');
} catch (\Exception $e) {
    // 处理其他错误
    die('Error decoding token');
}

👑 阁下若觉此文有益,恳请施以👍🏻-点赞 ⭐ - 收藏 👀 - 关注之礼,以资鼓励。倘若有疑问或建言,亦请在评论区💬评论 赐教,吾将感激不尽。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值