缺少授权 — 那个帮你省去 45 分钟废话的 401
发布: (2026年2月12日 GMT+8 12:49)
2 分钟阅读
原文: Dev.to
Source: Dev.to
问题
在 API 中有一种特殊的愚蠢行为,看起来并不危险——只是稍微让人恼火。
去掉 Authorization 头部后再次发送请求。
如果你的 API 对此的响应不是 401 Unauthorized,那它就在说谎。
正确的响应码
- 401 – “我不知道你是谁。”
- 403 – “我知道你是谁,但你没有权限。”
如果根本没有 token,却返回 403,你就把开发者拉进了角色、作用域和权限的无头苍蝇追逐中——而真正的问题其实只是……没有进行身份验证。
错误码的后果
- 将 403 当作 401 返回,会把本来 1 秒钟的修复工作变成 45 分钟的调试会话和 Slack 讨论串。
- 对缺失的授权返回 400,甚至更糟的 500,这并不是边缘情况;它是带有幽默感的架构债务。
建议
身份验证必须快速、明确且诚实地失败。
- 没有 token?返回 401。
并不复杂。
完整解析请见此处: 👉