You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用未允许的认证方式时,应返回何种HTTP状态码?

状态码选择建议

首先明确:401 Unauthorized其实是这个场景下最符合HTTP语义的状态码,但可以通过补充响应头让客户端体验更好。另外也可以参考其他选项,但各有适用场景:

  • 401 Unauthorized(优先选择):
    这个状态码的核心语义就是“请求未通过合法认证”,完全匹配用户使用不支持的认证方式的场景。按照HTTP规范,返回401时记得加上WWW-Authenticate响应头,明确告诉客户端你支持的认证方式,比如:

    WWW-Authenticate: Basic realm="Your API Scope", ApiKey realm="Your API Scope"
    

    这样客户端能立刻知道该用哪种方式认证,而不是继续尝试无效的方法。

  • 400 Bad Request:
    如果客户端用了完全不被识别的认证方案(比如自定义的奇怪认证头),也可以返回400,但这个状态码更多指向请求格式/参数错误,语义上不如401精准对应认证问题。

  • 403 Forbidden:
    别用这个,403的意思是“服务器懂你的请求,但就是不让你访问”,一般用于用户已经认证成功但没有资源权限的情况,和“用了不支持的认证方式”完全不是一回事。

总结:继续用401没问题,但一定要配上WWW-Authenticate头给客户端明确指引,这比换状态码更重要。

内容的提问来源于stack exchange,提问作者AaztacK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:22:04