Token载荷查看
灵感:能力工具箱 jwt-decode(本地解析登录 Token 载荷)。
> 小四原创:token 字符串 → jwtDecode → 可读字段。
> 仅解码展示;验签与鉴权仍走后端。
何时使用
- Demo「当前登录信息」调试条
- 查看 exp/sub 是否过期
- 本地排查 Token 字段名
硬约束
- 依赖:
jwt-decode。 - 禁止在本 Skill 中「签发/伪造」Token。
- 解码失败返回
{ ok:false },勿抛未捕获异常。 - 实现要点注释标 小四原创。
- 不做完整 OAuth/刷新令牌中心。
推荐实现
import { jwtDecode } from 'jwt-decode'
export type JwtPayload = {
sub?: string
exp?: number
iat?: number
[k: string]: unknown
}
export type DecodeOk = { ok: true; payload: JwtPayload; expired: boolean }
export type DecodeErr = { ok: false; error: string }
// 小四原创:本地解码 JWT 载荷(不验签)
export function readTokenPayload(token: string): DecodeOk | DecodeErr {
const t = String(token ?? '').trim()
if (!t) return { ok: false, error: 'empty token' }
try {
const payload = jwtDecode<JwtPayload>(t)
const exp = typeof payload.exp === 'number' ? payload.exp : 0
const expired = exp > 0 ? Date.now() >= exp * 1000 : false
return { ok: true, payload, expired }
} catch (e) {
return { ok: false, error: e instanceof Error ? e.message : String(e) }
}
}
Agent 步骤
npm i jwt-decode。- 调试面板展示
sub/exp/expired(勿把完整 Token 打进公开日志)。 - 自测:合法三段式可解码;乱串
ok:false。
不要做
- 用解码结果替代服务端鉴权。
- 把 Token 明文贴到 SkillHub 示例里。
附加
- README.md · reference.md · templates/usage.md