我正在开发 RESTful API,我已经实现了基于令牌的身份验证,其中令牌摘要是使用时间戳准备的。现在,当请求到达 API 服务器时,我正在检查提供的时间戳是否无效(即指定了未来/过去的日期时间),然后抛出错误消息,指示“检测到未来令牌”或“令牌已过期”。我需要附加 HTTP 状态代码 我很困惑哪种状态代码适合这种情况?
我已经查看了可用的状态代码(ref1 http://www.restapitutorial.com/httpstatuscodes.html, ref2 http://robertlathanh.com/2012/06/http-status-codes-401-unauthorized-and-403-forbidden-for-authentication-and-authorization-and-oauth/)到目前为止,我认为,使用 400 '错误请求' 在这里比较合适,而不是 401 '未经授权' 和 403 '禁止' 状态代码。
你们觉得怎么样?
由于时间戳无效,我认为令牌无效。所以客户端不再经过身份验证。所以我会抛出 401 Unauthorized。您可以随意添加上下文的额外数据作为带有 X- 前缀的 HTTP 标头,或者添加根据 Accept 请求标头(json、文本等)编码的响应正文。喜欢:
{
"error": {
"status": 401,
"details": {
"code": "401.3",
"description": "The timestamp provided must not be in the future."
}
}
}
它不是 403 Forbidden:403 表示“客户端已通过身份验证,但无权发送此请求”。就您而言,我认为客户端不再经过身份验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)