如何在使用.htaccess(和.htpasswd)身份验证时注销?
可能重复:
HTTP authentication logout via PHP如何在使用.htaccess(和.htpasswd)身份验证时注销?
嗨
我有我的网站上使用.htaccess
和.htpasswd
保护的一些功能。 当用户试图访问这个,他们会提示输入详细信息。他们输入他们的细节并进入并可以看到东西等所有工作正常。
我的问题是如何为这种类型的身份验证创建logout
功能。我知道他们可以关闭浏览器窗口以“注销”。但这并不理想。你会给我什么建议?
谢谢。
浏览器通常不支持此功能,请参阅How do I log out?
因为浏览器第一次开始 实施基本的身份验证, 网站管理员都希望 知道如何让用户注销。 由于浏览器缓存与认证 领域的用户名 和密码,如之前在本 教程中介绍,这是不是 服务器配置的功能,而是让浏览器 的 问题忘记了证书信息,所以 下次资源是 请求时,必须重新提供用户名和密码 。有 很多情况中,这是可取的 ,例如在公共场所使用 浏览器的时候,并没有 希望离开浏览器登录 ,让旁边的人可以得到 到您的银行帐户。
然而,尽管这也许是 最常见的问题有关 基本身份验证,迄今没有任何 各大浏览器厂商纷纷 看到了这一点作为一个理想的功能 投入到自己的产品。
因此,这个问题的答案是 问题是,你不能。抱歉。
有一些浏览器扩展可以让您清除站点的HTTP身份验证。 对于Firefox,WebDeveloper扩展(无论如何,这是我最喜欢的扩展之一)提供此功能。 这个菜单是Miscellaneous/Clear Private Data/HTTP Authentication
。
啊,我明白了..谢谢。 – TigerTiger 2009-07-22 08:50:26
在firefox和chrome上测试。你可以做的是发送用户http://logout:[email protected]。这将用注销/注销(它可以是任何无效的用户/密码组合)替换他们当前的用户名/密码,并且由于他们现在具有错误的用户名/密码,他们将不得不再次登录才能访问该站点。
在opera上这不起作用,因为您可以同时拥有多个用户名/密码。它也无法在IE上运行,因为IE似乎不支持http://username:[email protected]网址。
它有可能退出。您应该实现注销页面,该页面将返回HTTP 401,直到用户输入BAD登录信息,然后在其他地方重定向。浏览器会记住接受的最新登录信息,因此会覆盖正确的登录信息。
但是这有点不可用,因为它需要用户的合作。
几年前我遇到过这个问题。发现每个人都有问题,而且似乎没有人希望以一般方式解决,这是令人难以置信的令人沮丧的。
正如Inadequate Logout functionality in HTTP Authentication所述,我认为答案是更改RFC以允许超时并支持注销按钮。作者的另一个建议是,服务器能够发送“注销”报头实际上不需要支持任何客户端用户代理支持,因为网站可以简单地在网页上包含链接到URL,该URL返回必要的响应代码和/或标题使当前会话无效。
之前已经询问过,例如,请参阅http://stackoverflow.com/questions/449788/http-authentication-logout-via-php – VolkerK 2009-07-22 08:44:26
没有任何形式的实现,没有写几行来删除会话,或重置标题。尝试直接的方法。 http://blog.acpmasquerade.com/2011/09/basic-http-authentication-straight.html#more – acpmasquerade 2011-09-06 13:44:12