已验证但未授权的 HTTP 状态代码?
Posted
技术标签:
【中文标题】已验证但未授权的 HTTP 状态代码?【英文标题】:HTTP Status Code for Authenticated but Unauthorized? 【发布时间】:2017-01-02 12:40:54 【问题描述】:如果请求已通过身份验证(根据The OAuth 2.0 Authorization Framework: Bearer Token Usage: Authorization Request Header Field),但经过身份验证的用户无权查看所请求的资源,则 REST API 应使用哪个 HTTP 状态代码响应?
例如,假设我请求查看某个用户的个人资料:GET /users/123
。我验证成功,但该用户阻止了我。服务器应该使用哪个 HTTP 状态码来响应?
相关:
Authentication versus Authorization HTTP status code for missing authentication【问题讨论】:
greenbytes.de/tech/webdav/rfc7231.html#status.403 这里有一个有用的guide 用于选择适当的 HTTP 状态代码 我的回答能解决你的疑惑吗? 是的,谢谢@Opal。 :-) 【参考方案1】:你需要的代码是403 Forbidden
:
来自wikipedia:
403 响应通常表示以下两种情况之一:
提供了身份验证,但不允许经过身份验证的用户执行请求的操作。 禁止所有用户操作。例如,目录列表请求返回代码 403 时,目录列表已经 已禁用。
【讨论】:
以上是关于已验证但未授权的 HTTP 状态代码?的主要内容,如果未能解决你的问题,请参考以下文章