针对被禁止用户的 http 状态代码 403 的替代方案

dan*_*789 3 http

我想知道以下场景的最佳实践是什么:我有一个应用程序,其中代理代表客户进行身份验证。

如果客户被禁止,我返回给他们的 http 状态代码的最佳做法是什么?

当我返回 403 时,他们发出的请求似乎无效,它不会向代理传达用户被禁止的信息。同样的道理,我不想发送 401,除非用于发出请求的凭据无效。

我已经阅读了一些答案和规范,但没有找到我想要的东西。我倾向于自定义 2XX 响应,即 (230) 或 406 或 451 之类的内容。

期待您的意见。

使用的资源:

小智 6

在我看来,你应该遵循标准:403

来自:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

10.4.4 403 Forbidden 服务器理解该请求,但拒绝满足该请求。授权不会有任何帮助,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开为什么请求没有被满足,它应该在实体中描述拒绝的原因。如果服务器不希望将此信息提供给客户端,则可以使用状态代码 404(未找到)。

返回FORBIDDEN非常直接,因为其他代码可能被认为是不明确的。