2009-12-28 11 views
22

मैंने हाल ही में अपनी वेबसाइट पर ओपनआईडी लॉगिन जोड़ा है। लेकिन मुझे नहीं पता कि लॉगआउट सुविधा कैसे जोड़नी है।ओपनआईडी सक्षम साइट पर लॉगआउट सुविधा कैसे जोड़ें?

उदाहरण के लिए, साइन इन बटन पर क्लिक करने पर मैं चयनित ओपनआईडी प्रदाता का लॉगिन फॉर्म दिखाने में सक्षम हूं, उदाहरण के लिए Google खाता। हालांकि, मुझे नहीं पता कि Google खाते से साइन आउट करने के लिए साइन आउट बटन को कैसे कार्यान्वित किया जाए।

कृपया सलाह दें।

उत्तर

12

ओपनआईडी भरोसेमंद पार्टी ओपी से उपयोगकर्ता को लॉग नहीं कर सकती है, आप केवल स्थानीय लॉगआउट को लागू कर सकते हैं। जैसे आरपी उपयोगकर्ता को ओपी में लॉग नहीं कर सकता है।

+0

यूप। आप जो पूछ रहे हैं वह एकल-साइन-आउट सुविधा है, जिसे ओपनआईडी लागू नहीं करता है। –

+2

ओपनआईडी इसे लागू नहीं करता है, लेकिन प्रमुख ओपनआईडी प्रदाता (Google और याहू दोनों) _do_। –

1

बस सत्र को नष्ट कर दें।

+0

पुरानी पोस्ट, लेकिन सत्र को नष्ट करने के लिए मेरे लिए काम किया। –

0

मैं अपने प्रोजेक्ट कर रहा हूँ और लॉगआउट समस्या में फंस मैं कैसे करना है पता नहीं है कि आप मैं रीसेट करके हल किया है की तरह कुकी के सभी क्योंकि मैं कुकी कि सेट नहीं जानते स्थिति में लॉग इन करना मुझे इसे जानना होगा।

+0

मुझे लगता है कि सभी कुकीज़ को साफ़ करने से Google, याहू !, फेसबुक, आदि में लॉग इन की गई सभी वेबसाइटों के उपयोगकर्ता लॉग आउट होंगे। यह सुनिश्चित नहीं है कि मैं सही हूं या नहीं। क्या आप कोड पोस्ट कर सकते हैं? – Madhu

0

आपने ओपनिड प्रदाता से सफल सत्यापन के बाद कुछ सत्र चर बनाए हैं, आपको बस उन सत्र चर को नष्ट करने की आवश्यकता है। आप ओपनिड प्रदाता द्वारा बनाए गए सत्र को नष्ट नहीं कर सकते हैं।

4

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

इसी प्रकार, आपकी साइट पर लॉगआउट लिंक को उपयोगकर्ता को केवल अपनी साइट से लॉग आउट करना चाहिए, उन्हें लॉगिन बटन पर क्लिक करने से पहले उसी स्थिति में लौटना चाहिए। उपयोगकर्ता पहले से ही अपने ओपनआईडी प्रदाता से लॉग आउट हो सकता है; आप न तो जानते हैं और न ही देखभाल करते हैं। यह साइट एक अच्छा उदाहरण है :)।

+0

यदि दो प्रतिमान हैं 1) सत्र को मारें और 2) पहचान प्रदाता से लॉगआउट करें, तो आईएमएचओ उपयोगकर्ता लॉगआउट हिट करते समय दूसरी उम्मीद करते हैं। सर्वर के सत्र के बारे में क्या उपयोगकर्ता परवाह करता है? वे यह सुनिश्चित करना चाहते हैं कि कोई भी अपने कंप्यूटर पर नहीं जा सके, अपनी साइट पर क्लिक करें, और स्पष्ट रूप से पुनः प्रमाणीकरण किए बिना एक नया सत्र बनाएं। इसमें, मैं लॉगआउट के एसओ के दृष्टिकोण से सहमत नहीं हूं। शायद "लॉगआउट" शब्द एसएसओ का उपयोग कर वेब साइटों के लिए मान्य नहीं है ??? एकल लॉगआउट? –

36

व्यक्तिगत ओपनआईडी प्रदाता लॉगआउट के लिए अलग-अलग यूआरएल प्रदान करते हैं जिन पर उपयोगकर्ता को रीडायरेक्ट किया जा सकता है।

गूगल: https://www.google.com/accounts/Logout

याहू: https://login.yahoo.com/config/login?logout=1

ऑप्स मानक के एक भाग के रूप में इन URL प्रदान करने की अनुमति देने के बारे में चर्चा हुई; ओपनआईडी मेलिंग सूची पर this discussion देखें।

+0

@Madhhu: यह सही जवाब है। यह क्यों स्वीकार नहीं किया जाता है? –

+8

मुझे लगता है कि वे यूआरएल जल्द ही लॉग आउट करने के लिए जीईटी अनुरोध स्वीकार करना बंद कर देंगे। यह बहुत मजेदार है जब कोई भी यादृच्छिक साइट आपको अपने ब्राउजर को जीईटी अनुरोध करने के लिए सभी Google सेवाओं (और Google द्वारा प्रमाणीकृत अन्य सेवाओं) से लॉग आउट कर सकती है (उदा। पृष्ठ पर एम्बेड छवि, आईफ्रेम, रीडायरेक्ट)। उस यूआरएल को एक पुष्टिकरण पृष्ठ प्रदान करना चाहिए जिसमें एक पोस्ट सबमिट बटन और सीएसआरएफ सुरक्षा शामिल हो। –

+2

@MikkoRantalainen अच्छी तरह से, 2 साल बाद, वे अभी भी ठीक काम कर रहे हैं। – Olli

1

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

समस्या को देखने का दूसरा तरीका यह है कि क्या आप यह सुनिश्चित करना चाहते हैं कि आपकी वेबसाइट में लॉग इन करने वाले व्यक्ति को हमेशा अपने पासवर्ड में कुंजी की आवश्यकता हो, केवल लॉग इन करने के बजाय जब वह पहले से ही ओपनिड प्रदाता में लॉग इन हो।

यह (आईएमएचओ) यदि वे इसे सार्वजनिक टर्मिनल से उपयोग कर रहे हैं तो बेहतर सुरक्षा प्रदान करता है। इससे यह सुनिश्चित होगा कि लॉग इन करने वाले उपयोगकर्ता को हमेशा अपना पासवर्ड पुनः सत्यापित करने की आवश्यकता होती है।

ऐसा करने के लिए यह वास्तव में काफी सरल है, बस पीएपीई विस्तार openid.ns का उपयोग करें।पैप = "http://specs.openid.net/extensions/pape/1.0"।
openid.pape.max_auth_age = 0

जब आप ओपनआईडी प्रदाता में लॉग इन कर रहे हों तो URL के हिस्से के रूप में।

<iframe id="myIFrame" src="" style='display:none;' > 
function logOutGoogle(){ 
    document.getElementById('myIFrame').src='https://www.google.com/accounts/Logout'; 
    timeOut(); 
} 
+1

कम से कम एक बार, मुझे किसी वेबसाइट के लॉग आउट होने पर हर जगह से लॉग आउट करने के लिए एक व्यावसायिक आवश्यकता मिल गई है - यदि किसी अन्य कारण से नहीं, क्योंकि फेसबुक के सिंगल-साइन-ऑन काम करता है। सिर्फ इसलिए कि यह असुविधाजनक और कष्टप्रद है इसका मतलब यह नहीं है कि यह "वांछित" व्यवहार नहीं है। * आह *। –

1

नीचे एक चाल मैं जिसके द्वारा गूगल से लॉगआउट कर सकते हैं।

बस फोन इस URI

https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=https://www.yourapp.com

यह गूगल से प्रस्थान करने और अपने ऐप्लिकेशन पर लगातार वापस रीडायरेक्ट करेगा। धन्यवाद!

जल्द ही मैं विंडोज लाइव और facebook.com एसटीएस के लिए अपना लॉगआउट समाधान पोस्ट करूंगा।

+0

'timeOut()' क्या है? – ecbrodie

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