Rest 凭据过期错误/异常的HTTP状态代码应该是什么?

Rest 凭据过期错误/异常的HTTP状态代码应该是什么?,rest,http-status-codes,Rest,Http Status Codes,我正在开发RESTful API,我已经实现了基于令牌的身份验证,其中令牌摘要是使用时间戳准备的。现在,当请求到达API服务器时,我正在检查提供的时间戳是否无效(即指定了来自未来/过去的日期时间),然后抛出错误消息,指示“检测到未来令牌”或“令牌已过期”。我需要附加HTTP状态代码我不知道哪种状态代码适合这种情况 到目前为止,我已经查看了可用的状态代码(,),我认为在这里使用400个“坏请求”将是合适的,而不是401个“未授权”和403个“禁止”状态代码 伙计们,你们觉得怎么样?由于时间戳无效,

我正在开发RESTful API,我已经实现了基于令牌的身份验证,其中令牌摘要是使用时间戳准备的。现在,当请求到达API服务器时,我正在检查提供的时间戳是否无效(即指定了来自未来/过去的日期时间),然后抛出错误消息,指示“检测到未来令牌”或“令牌已过期”。我需要附加HTTP状态代码我不知道哪种状态代码适合这种情况

到目前为止,我已经查看了可用的状态代码(,),我认为在这里使用400个“坏请求”将是合适的,而不是401个“未授权”和403个“禁止”状态代码


伙计们,你们觉得怎么样?

由于时间戳无效,我认为令牌无效。因此,客户端不再经过身份验证。所以我会扔一个401。您可以自由地将上下文的额外数据添加为带有X前缀的HTTP头,或者添加根据Accept请求头编码的响应体(json、文本等)。比如:


它不是403禁止:403表示“客户端已通过身份验证,但无权发送此请求”。在您的情况下,我认为客户端不再经过身份验证。

解决了。。。考虑过期密码(不完全是过期密码) 这是我从你家找到的 403禁止 客户端没有对内容的访问权限;就是未经授权,, 因此,服务器拒绝提供请求的资源。 与401不同,服务器知道客户端的身份。 //- - - - 我认为最好是使用403和description或自定义内容头进行响应,因此客户端需要使用auth+param和新密码调用端点

现在,关于过期的credencial(但考虑的是用户和密码,而不是令牌),403我也认为很好,因为“服务器知道客户端的身份”,但未经授权


关于令牌和您的时间戳,我认为带有描述的401很好,因为第一步是服务器看到时间戳,并且时间戳在检查任何凭据之前都会失败。

对于我来说,401稍微更合适一些。401不是说凭据有效,但无权访问资源吗(例如,试图访问特定于管理员的API的普通用户)已经阅读了您的ref1/ref2。403将我混淆为您的API的潜在消费者。根据它:“授权不会有帮助,请求不应重复。”.所以我重新授权对我没有帮助。400只是涵盖细节的一般错误。你必须添加特定的消息/标题,这不是最好的选择。是的,我在这里发帖之前阅读了它们。关于上述场景的401/403的不确定性导致我选择了400个糟糕的需求,我不确定这仍然是最好的选择,因此,是的,我正在寻找信息,哪种代码更适合这里,以及它到底有多好取决于您。:)在我们所有的情况下,我们使用401作为我们(再次)希望接收凭据的信号。
{
  "error": {
    "status": 401,
    "details": {
      "code": "401.3",
      "description": "The timestamp provided must not be in the future."
    }
  }
}