对于需要登录凭据的Web服务,基于cookie的身份验证似乎是当今的明智选择。
但是,如果您正在开发一个客户端不是浏览器的Web服务,而是通过HTTP访问资源的客户端软件(例如移动应用程序),那么您会使用HTTP身份验证还是cookie身份验证?
HTTP Auth:
Cookie Auth:
我还有哪些其他考虑因素?任何其他优点/缺点?
答案 0 :(得分:1)
使用HTTP身份验证,代码资源可以根据发出请求的用户做出不同的响应。用户名通常通过HTTP标头传递给代码。
使用HTTP身份验证,您仍然可以使用会话并获得与他们带来的相同的好处。实际上,会话窃取不再是一个问题,因为您可以测试存储在会话中的用户是否与通过HTTP身份验证进行身份验证的用户相同。出于同样的原因,会话标识符不一定是不可能的,因为它们需要基于Cookie的身份验证。
答案 1 :(得分:0)
嗯,当客户端是移动应用程序或不是普通浏览器的东西时,服务器应用程序仍然需要某种会话跟踪。执行会话跟踪的最简单方法是使用某种“cookie”,标准HTTP cookie或自定义会话ID。因此,即使不使用标准cookie机制,会话标识符实际上也是“cookie”。我总是将会话标识符分配给客户端会话,因此我倾向于投票支持cookie auth。
答案 2 :(得分:0)
当密码遭到破坏时,HTTP基本身份验证是一场噩梦,因为没有办法在不改变所有合法客户端的情况下更改密码。您也不能强制单个用户进行解除身份验证,并且传输身份验证凭据的机制是不安全的(除非您将其包装在https中)
实际上,您最好的选择是使用基于cookie的系统,允许对各个经过身份验证的会话进行精细控制