【发布时间】:2015-07-16 16:35:49
【问题描述】:
我正在开发 RESTful API,我已经实现了基于令牌的身份验证,其中令牌摘要是使用时间戳准备的。现在,当请求到达 API 服务器时,我正在检查提供的时间戳是否无效(即指定了未来/过去的日期时间),然后抛出错误消息,指示“检测到未来令牌”或“令牌已过期”。我需要附加 HTTP 状态码 我对哪种状态码适合这种情况感到困惑?
到目前为止,我已经查看了可用的状态代码(ref1、ref2),我认为在这里使用 400 'bad request' 代替 401 'Unauthorized' 和 403 'forbidden' 状态代码是合适的。
你们觉得呢?
【问题讨论】:
-
对我来说401稍微适合这里
-
不是 401 意味着凭据有效但无权访问资源(例如,普通用户尝试访问特定于管理员的 API)
-
已阅读您的 ref1/ref2。 403 让我对你的 api 的潜在消费者感到困惑。据它说:“授权将无济于事,不应重复请求。”。所以我重新授权不应该帮助我。而 400 只是涵盖细节的一般错误。比你必须添加特定的消息/标题,这不是最好的选择
-
是的,我在此处发布问题之前确实阅读了它们,关于上述场景的 401/403 的不确定性导致我使用 400 个错误请求,我不确定这仍然是最佳选择,所以是的,我正在寻找了解哪些代码更适合此处以及如何使用
-
最后由你决定。 :) 在所有情况下,我们都使用 401 作为我们(再次)想要接收凭据的信号。