Basit cevap, http-kimlik doğrulamasından güvenilir bir şekilde çıkış yapamamanızdır.
Uzun cevap:
Http-auth (HTTP spesifikasyonunun geri kalanı gibi) vatansızdır. Dolayısıyla, "giriş yapılmış" veya "çıkış yapılmış" olmak gerçekten mantıklı bir kavram değildir. Bunu sormanın en iyi yolu, her HTTP isteği için (ve bir sayfa yükünün genellikle birden fazla istek olduğunu unutmayın), "istediğinizi yapmanıza izin verilir mi?" Sunucu her isteği yeni ve önceki isteklerle ilgisiz olarak görür.
Tarayıcılar, ilk 401'de belirttiğiniz kimlik bilgilerini hatırlamayı ve kullanıcının sonraki isteklerde açık izni olmadan yeniden göndermeyi seçti. Bu, kullanıcıya bekledikleri "giriş / çıkış" modelini verme girişimidir, ancak tamamen bir çamurdur. Bu durumun sürekliliğini simüle eden tarayıcıdır . Web sunucusu tamamen farkında değil.
Yani "çıkış", http-auth bağlamında sadece tarayıcı tarafından sağlanan bir simülasyon ve böylece sunucunun yetkisi dışında.
Evet, kludges var. Ama RESTful-ness'i kırıyorlar (eğer sizin için değerliyse) ve güvenilmezler.
Sitenizin kimlik doğrulaması için kesinlikle oturum açmış / oturumu kapatılmış bir modele ihtiyacınız varsa, en iyi bahis, sunucuda bir şekilde depolanan durumun kalıcılığıyla (mysql, sqlite, flatfile, vb.) Bir izleme çerezidir. Bu, tüm isteklerin örneğin PHP ile değerlendirilmesini gerektirecektir.