对接的第三方接口一直正常,某天开始全部返回未授权。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
date -u curl -H 'Authorization: Bearer xxx' https://api.example.com/ping
访问令牌过期未续期,或本机时间偏差导致签名时间戳超出允许范围。这一点先确认清楚,后面就不用反复试。
「第三方 401」这类改动最怕改一半,回滚脚本先准备好,再动生产。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
具体做法是,确认令牌有效期与刷新逻辑;校准服务器时间;记录请求时间便于比对。
改完照着核一遍,接口恢复 200,令牌可自动续期。