token 有效期 7200 秒,刷新任务上周三挂掉,之后所有回调都返回 401 invalid token。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

curl -s 'https://api.example.com/token?grant_type=client_credential&appid=x&secret=y'

刷新逻辑写在定时任务里,任务异常退出后没有告警,token 到期就再没续上。业务侧也没有兜底刷新。这一点先确认清楚,后面就不用反复试。

「授权码过期未刷新」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

具体做法是,刷新任务加失败告警和连续失败计数;过期前 300 秒主动刷新 不等报错;调用方遇到 401 先同步刷新一次再重试;把剩余有效期打到监控面板。

改完照着核一遍,监控里剩余有效期始终大于 300 秒 401 invalid token 不再出现。

作者 9823189