使用.htaccess(和.htpasswd)身份验证时如何注销?

Tig*_*ger 28 php authentication .htaccess logout .htpasswd

可能重复:
通过PHP进行HTTP身份验证注销

你好

我在我的网站上使用.htaccess和保护了一些功能.htpasswd.当用户尝试访问它时,他们会立即输入详细信息.他们输入他们的细节并进入,可以看到东西等.一切正常.

我的问题是如何logout为这种类型的身份验证创建功能.我知道他们可以关闭浏览器窗口以"注销".但这并不理想.你有什么建议给我的?

谢谢.

Lud*_*erl 31

浏览器通常不支持此功能,请参阅如何注销?

由于浏览器首次开始实施基本身份验证,因此网站管理员想知道如何让用户注销.由于浏览器使用身份验证领域缓存用户名和密码,如本教程前面所述,这不是服务器配置的功能,而是让浏览器忘记凭据信息的问题,以便下次请求资源,必须再次提供用户名和密码.在许多情况下,这是可取的,例如在公共场所使用浏览器,而不希望让浏览器登录时,以便下一个人可以进入您的银行帐户.

然而,尽管这可能是关于基本身份验证的最常见问题,但到目前为止,主要的浏览器制造商都没有将其视为投入其产品的理想功能.

因此,这个问题的答案是,你不能.抱歉.

有一些浏览器扩展允许您清除站点的HTTP身份验证.对于Firefox,WebDeveloper 扩展(无论如何,这是我最喜欢的扩展之一)提供此功能.这个菜单是Miscellaneous/Clear Private Data/HTTP Authentication.

  • Firefox的默认登出HTTP身份验证方式可在"工具">"清除最近历史记录..."下找到,作为复选框"活动登录".这既不直观,也不允许您只注销一个域,您总是退出每个页面. (5认同)

Mar*_*ius 25

在firefox和chrome上测试过.您可以做的是将用户发送到http:// logout:logout@example.com.这将用logout/logout替换他们当前的用户名/密码(可能是任何无效的用户/通行证组合),因为他们现在有错误的用户名/密码,他们将不得不再次登录才能访问该站点.

在Opera上这不起作用,因为你可以同时拥有多个用户名/密码.它也不适用于IE,因为IE似乎不支持http:// username:password@example.com URL.

  • 根据RFC 3986(URI:通用语法)第3.2.1节.(用户信息)不推荐使用`user:password @ host`.仅使用`http:// logout @ yourserver.example.com /`并不适用于大多数情况. (9认同)