我正在为应用程序实现身份验证,并且我正在使用具有“身份验证方法”的可插拔系统。这使我能够同时实现 HTTP Basic 和基于 HTML 的身份验证。
对于 HTTP Basic/Digest 身份验证,服务器会发送一个 401 Unauthorized
响应 header 。然而,根据HTTP/1.1 RFC :
The response MUST include a WWW-Authenticate header field (section 14.47) containing a challenge applicable to the requested resource.
因为我不知道有任何“html”WWW-Authenticate header ,发送带有 HTML 登录表单的 401
似乎是不合适的。还有其他选择吗?我想以 RESTful 方式设计我的应用程序。
基于 HTML 的登录表单的正确 HTTP 状态代码(和 header )是什么?登录失败时正确的代码是什么?
注意:我对摘要式身份验证不感兴趣。
最佳答案
对于 HTML,我认为你应该用 400 响应。
对于非 HTML 请求也可能如此,因为据我所知,401 更旨在响应对需要身份验证的内容的请求,而不是响应身份验证请求。
HTML 并不总是允许纯粹使用 RESTful API,因此我可以在这里和那里偷工减料,但也许在这种特殊情况下我没有看到更好的方法。
关于http - 登录表单的正确 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6110672/