过期 JWT 令牌的后端响应的最佳实践标准是什么? [已关闭]

问题描述 投票:0回答:1

所以我发现有用的是根据 MDN 的 HTTP 响应状态代码 符合资格的状态代码是:

  1. 400 错误请求
  2. 401 未经授权
  3. 406 不可接受
  4. 412 前提条件失败

现在,我正在考虑使用 401,但使用

error.name
error.code
JwtTokenExpired
。但后来我看到了400、406和412。我猜400是通用的,或者可能太通用了?这使得 406 或可能 412 更像它。

但我不确定。人们还没有在 StackOverflow 中问过这个问题。所以我认为值得讨论一下,并且知道有一定的标准。

http-status-codes status http-error
1个回答
2
投票

这取决于您的安全级别。出于安全原因,如果某些答案不是为开发人员提供的信息,那么它们就没有关键信息。

例如,如果您正在与正在开发对您的 API 的调用的客户合作,您可以在沙箱环境中使用问题的完整响应,而在生产中,提供的信息会尝试减少到 0,以免向可能的攻击者提供任何信息。

也就是说,如果您的令牌像安全密钥一样工作,您可以使用

401
,或者甚至更好
428
(或
412
),因为前提条件未满足。对于这种情况,
400
应该是最空洞的响应,因为只带来问题出在客户端的信息。为了充分保护并且完全没有信息,
204
的反应会让任何敌人感到困惑,但这只是为了你的关心。

来自RFC 6585

428 需要先决条件

428状态码表示源站需要
要求有条件。

它的典型用途是避免“丢失更新”问题,其中 客户端获取资源的状态,修改它,然后将其放回 服务器,同时第三方修改了状态 服务器,导致冲突。 通过要求请求 有条件时,服务器可以确保客户端正在使用 正确的副本。

使用此状态代码的响应应解释如何重新提交 请求成功。 例如:

HTTP/1.1 428 前提条件所需内容类型:text/html

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.