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

Rah*_*hul 6 rest http-status-codes

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

到目前为止,我已经查看了可用的状态代码(ref1,ref2),我认为使用400'错误请求'将适用于此而不是401'未授权'和403'禁止'状态代码.

你们觉得怎么样?

Ben*_*enC 5

由于时间戳无效,我认为令牌无效.因此客户端不再进行身份验证.所以我会扔401未经授权.您可以自由地将上下文的额外数据添加为带有X前缀的HTTP标头,或者添加根据Accept请求标头(json,text等)编码的响应主体.喜欢:

{
  "error": {
    "status": 401,
    "details": {
      "code": "401.3",
      "description": "The timestamp provided must not be in the future."
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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