我希望有一个网站,其中某些内容是公开的,而其他一些内容仅对经过身份验证的用户可见。因此可以进行身份验证,但不是必需的。我想知道这是否可能。
一些背景知识:
要告诉客户端身份验证首先需要发送一些标头。据我所知RFC 2617,'WWW-Authenticate'标题字段必须始终是'401(未授权)'响应的一部分。
现在有些客户端(例如wget)会在获得401标头时停止尝试(wget实际上使用“需要授权”而非“未授权”这一术语。)
这是一个wget bug还是没有可选的http basic auth?
答案 0 :(得分:4)
401 Unauthorized
专门用于授权需要但未提供(或未正确提供。
在您的方案中,您只需为需要身份验证的请求发送WWW-Authenticate
标头 - 如果身份验证被取消或不满意,则您返回401
。
在提出要求之前,系统不会提示用户进行身份验证。没有请求具有可选身份验证 - 请求允许匿名用户或不允许。
值得注意的是,HTTP身份验证是网站登录的不错选择,原因如下:
HTTP身份验证来自网站静态的时代,因此安全性是在网络服务器级别处理的。