【发布时间】:2010-11-29 08:11:31
【问题描述】:
HTTP 定义了状态401 Unauthorized 用于缺少身份验证,但此状态仅适用于 HTTP 身份验证。当发生未经授权的请求时,我应该使用基于会话 cookie 的系统返回什么状态?
【问题讨论】:
标签: http rest http-status-codes
HTTP 定义了状态401 Unauthorized 用于缺少身份验证,但此状态仅适用于 HTTP 身份验证。当发生未经授权的请求时,我应该使用基于会话 cookie 的系统返回什么状态?
【问题讨论】:
标签: http rest http-status-codes
正式地,403 Forbidden 是正确的响应。它被定义为
授权无济于事,不应重复请求。
令人困惑的部分可能是“授权无济于事”,但它们真正的意思是“HTTP 身份验证”(WWW-Authenticate)
【讨论】:
403 我认为在技术上是正确的(如果您正在实施自定义 API/协议,这可能是最有效的)。
401 不合适,因为它指的是带有 WWW-Authenticate 标头的授权,而会话 cookie 则不是。
如果这是一个面向公众的网站,您试图根据会话 cookie 拒绝访问,则 200 带有适当的正文以指示需要登录或 302 临时重定向到登录页面通常是最好的。
【讨论】:
您可以利用测试条件并通过
错误代码:401.1-登录失败。登录尝试失败,可能是因为用户名或密码无效。
专门用于密码错误或用户名密码不匹配的情况。 希望对您有所帮助。
【讨论】: