销毁$ _SERVER会话?

时间:2009-06-30 23:59:15

标签: php http http-headers twitter http-authentication

好的,所以我没有使用任何会话变量,而是我的代码看起来像这样:

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="Enter your Twitter username and password:"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Please enter your Twitter username and password to view your followers.';
    exit();
}

$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW']; 

所以,我的问题是,当用户想要退出他们的(在这种情况下)推特登录凭证时,如何销毁此登录会话?

2 个答案:

答案 0 :(得分:7)

无法破坏http身份验证登录服务器端。这是这种登录形式的最大缺点之一。

答案 1 :(得分:4)

您所能做的就是发送另一个401标头。浏览器通常会“忘记”旧值,弹出另一个用户/传递输入对话框,如果用户再按“中止”按钮,则“退出”。 两个缺点:

  • “中止登录注销”对话框可能会让用户感到有些惊讶
  • “通常”意味着:最好不要依赖它。

编辑:已经回答,HTTP authentication logout via PHP