我在lighttpd中使用Htdestist身份验证。当用户第一次登录网站时,会出现一个标准的用户名/密码对话框。如果输入了正确的用户名和密码,则用户可以登录,否则lighttpd将显示"身份验证失败"页面。
到目前为止一切都很好!
问题是,当用户想要注销时,浏览器不会忘记用户名和密码。换句话说,只要浏览器打开,用户就可以返回到同一个网站,而无需进行身份验证。一种解决方案是关闭浏览器,这样它就会忘记身份验证。但我不想强迫用户每次想要注销时都关闭浏览器。
有没有一种方法可以使用JavaScript或服务器端代码(如PHP、Python或Lua)让浏览器忘记htdigest身份验证?
PS。我们在服务器端使用Lua 5.1,它不如PHP强大,但它在Linux 2.6上的Lighttpd 1.4中运行为FASTCGI。
这是可以做到的,但很棘手。没有默认的方法可以做到这一点。从各种来源得出的结论:
你必须欺骗浏览器忘记用户/密码组合。这可以通过让注销页面发送401未授权响应报头来实现。不幸的是,每个浏览器的详细信息各不相同。