【发布时间】:2013-08-06 16:44:50
【问题描述】:
我知道没有“真正的解决方案”来注销 http,因为它是无状态的。但是,我需要的只是一个解决方法。我想要实现的是当单击注销链接时,它会重定向到 logout.php 文件。该文件再次调用基本身份验证标头。我想让 php 代码传入一个虚假密码,然后重定向到我的主页,用户将在该主页“注销”。
我意识到他们实际上不会被注销,而是浏览器将尝试使用最新的身份验证凭据,这些凭据将被传入并且不正确,因此使用户使用有效凭据重新登录。
我基本上没有 php 经验,不知道如何编写错误密码的传递。
感谢任何帮助。
logout.php
<?php
session_start();
session_write_close();
header('HTTP/1.1 401 Access Denied');
header('WWW-Authenticate: Basic realm="HTTPS File Upload"');
header('HTTP/1.0 401 Unauthorized');
header('Location: http://www.homepage.com')
?>
【问题讨论】:
-
你能解释一下你为什么这样做吗?这似乎非常令人费解,可能没有充分的理由。顺便说一下,HTTP 身份验证信息存储在 cookie 中。
-
你不能取消设置持有用户身份验证的会话变量(如果你正在使用的话)?
-
这是一个低容量页面,几个用户可以访问并登录,然后上传文件供我们访问。目前该网站根本没有注销功能,从网站基础设施的角度来看,这看起来很糟糕。我对 php 或 http 知之甚少,从这看起来像是一个合理的解决方法
-
一个随机的想法:重定向到一个包含用户信息的 url:nobody@www.homepage.com,这样浏览器就会尝试使用它。
-
我继承了尝试清理此站点的乐趣,似乎首先设置它的人没有存储任何登录信息,因此取消设置变量不成功
标签: php http authentication basic-authentication