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

JWT令牌过期时应选择返回哪种HTTP状态码?

JWT令牌过期时的HTTP状态码选择
  • 首选401 Unauthorized
    你对403的理解完全正确——403确实适用于「凭证有效但无资源访问权限」的场景。而令牌过期本质属于身份验证失败:用户的凭证曾经有效,但当前已失效,需要重新提供或刷新有效凭证。HTTP规范中,401的核心语义就是「请求需要用户身份验证」,完全匹配令牌过期的场景。

  • 绝对不要自定义状态码
    像425这类非标准状态码会给客户端适配带来额外成本,而且不符合HTTP语义的通用约定,很容易导致第三方工具或客户端解析出错,完全没必要。

  • 明确告知客户端令牌过期的方式
    返回401的同时,通过响应体或响应头传递具体错误信息即可:

    • 响应体返回结构化JSON数据:
      {
        "error_code": "TOKEN_EXPIRED",
        "error_msg": "JWT令牌已过期,请重新登录或使用刷新令牌获取新凭证"
      }
      
    • 或者遵循OAuth2规范,通过WWW-Authenticate响应头传递:
      return ResponseEntity.status(HttpStatus.UNAUTHORIZED)
          .header("WWW-Authenticate", "Bearer error=\"invalid_token\", error_description=\"JWT令牌已过期\"")
          .body("JWT令牌已过期,请重新获取有效凭证");
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:24:51