问题场景
网页能解出 Token 的用户 ID,时间也没有过期,但请求接口仍然返回未授权。解码结果到底说明了什么?
排查与解法按顺序复现、定位和验证
解码只能看到声明
常见三段式签名 JWT 的头部和载荷使用 Base64URL 编码。任何拿到字符串的人都可能读取内容,解码成功不表示内容可信。不要把真实生产 Token 粘贴到公开工单。
验证应在受信端完成
服务端需使用配置好的算法和密钥验证签名,不根据 Token 自己声明的算法无限制选择。还要检查 issuer、audience、有效期及业务需要的声明。
时间有效不代表授权有效
exp、nbf 使用秒级 NumericDate,不是毫秒。即使签名和时间都有效,也可能因账号停用、权限变更、退出登录或令牌撤销而失效。
// 仅供观察时间,不进行验签
const expiresAt = new Date(payload.exp * 1000);用拒绝用例验收
至少测试过期 Token、改过载荷的 Token、错误受众、错误签发者、错误密钥和权限不足。网页解码工具只辅助查看字段,最终结果以受信端校验及授权判断为准。