2009-07-22 10 views
26

संभव डुप्लिकेट:
HTTP authentication logout via PHP.htaccess (और .htpasswd) प्रमाणीकरण का उपयोग करते समय लॉगआउट कैसे करें?

हाय

मैं अपनी वेबसाइट .htaccess और .htpasswd का उपयोग कर संरक्षित पर एक कुछ कार्यक्षमता है। जब उपयोगकर्ता इसे एक्सेस करने का प्रयास करते हैं, तो उन्हें विवरण दर्ज करने के लिए तत्काल मिलता है। वे अपना विवरण दर्ज करते हैं और अंदर आते हैं और सामान देख सकते हैं आदि। सभी ठीक काम करते हैं।

मेरा सवाल है कि मैं इस प्रकार के प्रमाणीकरण के लिए logout कार्यक्षमता कैसे बना सकता हूं। मुझे पता है कि वे ब्राउज़र विंडो को "लॉगआउट" पर बंद कर सकते हैं। लेकिन यह आदर्श नहीं है। आप मुझे क्या सुझाव देंगे?

धन्यवाद।

+0

पहले पूछा गया है, उदा। http://stackoverflow.com/questions/449788/http-authentication-logout-via-php – VolkerK

+0

सत्र को हटाने के लिए कुछ पंक्तियों को लिखने के बिना किसी भी प्रकार का कार्यान्वयन नहीं है, या हेडर रीसेट करें। सीधे आगे दृष्टिकोण का प्रयास करें। http://blog.acpmasquerade.com/2011/09/basic-http-authentication-straight.html#more – acpmasquerade

उत्तर

31

ब्राउज़र आम तौर पर इस का समर्थन नहीं करते, How do I log out?

देखने के बाद से ब्राउज़र पुराने शुरू कर दिया बुनियादी प्रमाणीकरण को लागू करने, वेबसाइट प्रशासकों करना चाहता था है पता उपयोगकर्ता को लॉग आउट अनुमति देने का तरीका। के बाद से ब्राउज़र उपयोगकर्ता नाम और प्रमाणीकरण दायरे के साथ पासवर्ड, के रूप में यह ट्यूटोरियल में पहले वर्णित कैश, इस सर्वर विन्यास के एक समारोह नहीं है, लेकिन करने के लिए ब्राउज़र होने का एक सवाल क्रेडेंशियल जानकारी भूल है , इसलिए कि अगली बार संसाधन अनुरोध किया गया है, उपयोगकर्ता नाम और पासवर्ड फिर से आपूर्ति की जानी चाहिए। जैसे कि जब एक सार्वजनिक स्थान में एक ब्राउज़र का उपयोग कर, और ब्राउज़र में लॉग इन किया है, ताकि अगले व्यक्ति आपके बैंक खाते में प्राप्त कर सकते हैं छोड़ना चाहते हैं उनसे नहीं के रूप में है जिसमें यह वांछनीय है कई स्थितियों, कर रहे हैं।

हालांकि, हालांकि यह शायद अक्सर पूछे जाने वाले प्रश्न के बारे में बुनियादी प्रमाणीकरण, इस प्रकार अब तक में से कोई भी है प्रमुख ब्राउज़र निर्माताओं अपने उत्पादों में डाल करने के लिए एक वांछनीय सुविधा होने के रूप में यह देखा है।

परिणामस्वरूप, इस प्रश्न का उत्तर है, आप नहीं कर सकते हैं। माफ़ कीजिये।

ब्राउज़र एक्सटेंशन हैं जो आपको साइट के लिए HTTP प्रमाणीकरण को साफ़ करने की अनुमति देते हैं। फ़ायरफ़ॉक्स के लिए WebDeveloper एक्सटेंशन (जो कि मेरे फेवोर्टी एक्सटेंशन में से एक है) इस सुविधा को प्रदान करता है। इसके लिए मेनू Miscellaneous/Clear Private Data/HTTP Authentication है।

+0

आह, मैं देखता हूं .. धन्यवाद। – TigerTiger

+5

HTTP ऑथ से लॉग आउट करने का फ़ायरफ़ॉक्स का डिफ़ॉल्ट तरीका "टूल्स"> "हालिया इतिहास साफ़ करें ..." के अंतर्गत उपलब्ध है, चेकबॉक्स "सक्रिय लॉगिन" के रूप में। यह न तो अंतर्ज्ञानी है और न ही यह आपको केवल एक डोमेन से लॉग आउट करने की अनुमति देता है, आप हमेशा हर पृष्ठ से लॉग आउट करते हैं। – aef

19

फ़ायरफ़ॉक्स और क्रोम पर परीक्षण किया गया। आप क्या कर सकते हैं उपयोगकर्ता को http://logout:[email protected] पर भेजना है। यह लॉगआउट/लॉगआउट के साथ अपने वर्तमान उपयोगकर्ता नाम/पासवर्ड को प्रतिस्थापित करेगा (यह कोई अवैध उपयोगकर्ता/पास संयोजन हो सकता है) और चूंकि उनके पास अब गलत उपयोगकर्ता नाम/पासवर्ड है, इसलिए उन्हें साइट तक पहुंचने के लिए फिर से लॉगिन करना होगा।

ओपेरा पर यह काम नहीं करता है, क्योंकि आपके पास एक ही समय में कई उपयोगकर्ता नाम/पासवर्ड हो सकते हैं। यह आईई पर भी काम नहीं करता है, क्योंकि आईई http://username:[email protected] यूआरएल का समर्थन नहीं करता है।

+9

आरएफसी 3 9 86 (यूआरआई: जेनेरिक सिंटेक्स) खंड 3.2.1 के अनुसार। (उपयोगकर्ता जानकारी) 'उपयोगकर्ता: पासवर्ड @ होस्ट' का उपयोग बहिष्कृत किया गया है। केवल 'http: // logout @ yourserver.example.com/'का उपयोग करना ज्यादातर मामलों में काम नहीं करना चाहिए और काम करना चाहिए। – aef

+1

क्रोम भी – apis17

+0

कर सकता है यह आज क्रोम में मेरे लिए काम किया, महान सामान, धन्यवाद दोस्तों! –

2

लॉग आउट करना संभव है। आपको लॉगआउट पेज लागू करना चाहिए, जो HTTP 401 वापस करेगा, जब तक कि उपयोगकर्ता बीएडी लॉगिन जानकारी दर्ज न करे, और उसके बाद कहीं और रीडायरेक्ट करें। ब्राउज़र को नवीनतम लॉगिन जानकारी स्वीकार की जाती है, और इसलिए सही लॉगिन ओवरराइड करता है।

लेकिन यह थोड़े उपयोग करने योग्य है, क्योंकि इसे उपयोगकर्ता के सहयोग की आवश्यकता है।

2

मैं कई साल पहले इस मुद्दे में भाग गया था। यह पता लगाने के लिए अविश्वसनीय रूप से निराशाजनक है कि हर कोई एक समस्या है और कोई भी सामान्य तरीके से हल नहीं करना चाहता है।

जैसा कि Inadequate Logout functionality in HTTP Authentication में उल्लेख किया गया है, मुझे लगता है कि उत्तर टाइमआउट को अनुमति देने और लॉग आउट बटन का समर्थन करने के लिए आरएफसी को बदलना है। लेखक का अतिरिक्त सुझाव है कि सर्वर "लॉग आउट" हेडर भेजने में सक्षम होगा, वास्तव में किसी भी क्लाइंट उपयोगकर्ता एजेंट समर्थन की आवश्यकता को समाप्त कर देगा क्योंकि वेबसाइटें किसी ऐसे वेब पेज पर एक लिंक शामिल कर सकती हैं जो आवश्यक प्रतिक्रिया कोड लौटाती है और/या वर्तमान सत्र को अमान्य करने के लिए हेडर।

संबंधित मुद्दे