2009-06-30 199 views
4

好了,所以我不使用任何會話變量,而我的代碼看起來是這樣的:

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']; 

所以,我的問題是,我怎麼能當用戶想退出的破壞登錄會話的(在這種情況下)Twitter的登錄憑據?

+1

同樣的問題,同樣的答案在http://stackoverflow.com/questions/449788/http-authentication-logout-via-php – VolkerK 2009-07-01 00:28:30

回答

4

你只能發送另一個401頭。瀏覽器通常會「忘記」舊值,彈出另一個用戶/通過輸入對話框,如果用戶按下「中止」按鈕,它們將被「註銷」。 兩個缺點:

  • 的「中止登錄註銷」對話框可能會讓用戶有點
  • 「通常」是指:最好不要依賴於它。

編輯:而且已經有了答案,HTTP authentication logout via PHP

+0

這再加上其他可能的方法在php手冊的評論中被提及。然而就像你說的,他們不能保證工作。 鏈接:http://us3.php.net/manual/en/features.http-auth.php#76511 – MitMaro 2009-07-01 00:20:02

7

有沒有辦法破壞HTTP身份驗證登錄服務器端。這是這種登錄形式的最大缺點之一。