औथ का अवलोकन: क्या वह कौन है / वह कहता है / वह है?
मुझे यकीन नहीं है कि अगर आपने "Google के साथ लॉगिन" विकल्प की तरह, स्टैक ओवरफ्लो में प्रवेश करने के लिए OAuth का उपयोग किया है, लेकिन जब आप इस सुविधा का उपयोग करते हैं, तो स्टैक ओवरफ्लो केवल Google से पूछ रहा है कि क्या आपको पता है कि आप कौन हैं:
"यो गूगल, इस विनेश फेला का दावा है कि vinesh.e@gmail.com वह है, क्या यह सच है?"
यदि आप पहले से लॉग इन हैं, तो Google YES कहेगा। यदि नहीं, तो Google कहेगा:
"एक स्टैक ओवरफ्लो पर लटकाओ, मैं इस फेला को प्रमाणित करूंगा और यदि वह अपने Google खाते के लिए सही पासवर्ड दर्ज कर सकता है, तो यह है"।
जब आप अपना Google पासवर्ड डालते हैं, तो Google Stack Overflow को बताता है कि आप कौन हैं जो आप कहते हैं, और Stack Overflow आपको लॉग इन करता है।
आप अपने अनुप्रयोग से प्रस्थान करते हैं, तो आप में से प्रवेश कर रहे हैं अपने एप्लिकेशन:
यहाँ है जहाँ OAuth के लिए नए डेवलपर्स कभी-कभी थोड़ा भ्रमित हो जाते हैं ... Google और स्टैक ओवरफ़्लो, असेंबला, विनेश का बहुत अच्छा-चालाक-वेबैप, सभी अलग-अलग निकाय हैं, और Google को विनेश के कूल वेबएप और वाइस पर आपके खाते के बारे में कुछ भी नहीं पता है वर्ना, उस एपीआई से अलग जो आप प्रोफाइल जानकारी तक पहुँचने के लिए उपयोग कर रहे हैं।
जब आपका उपयोगकर्ता लॉग आउट करता है, तो वह Google से लॉग आउट नहीं कर रहा है, वह आपके ऐप, या स्टैक ओवरफ़्लो, या असेंबला, या जो भी वेब एप्लिकेशन Google OAuth का उपयोग करता है, उपयोगकर्ता को प्रमाणित करने के लिए लॉग आउट कर रहा है।
वास्तव में, मैं अपने सभी Google खातों से लॉग आउट कर सकता हूं और फिर भी स्टैक ओवरफ्लो में लॉग इन हो सकता हूं। एक बार जब आपका ऐप जानता है कि उपयोगकर्ता कौन है, तो वह व्यक्ति Google से लॉग आउट कर सकता है। Google की अब आवश्यकता नहीं है।
इसके साथ ही, आप जो करने के लिए कह रहे हैं वह उपयोगकर्ता को उस सेवा से लॉग आउट करना है जो वास्तव में आपके पास नहीं है। इसके बारे में इस तरह से सोचें: एक उपयोगकर्ता के रूप में, आपको कितना गुस्सा आता है, मुझे लगता है कि यदि मैं अपने Google खाते के साथ 5 अलग-अलग सेवाओं में लॉग इन करता हूं, तो पहली बार जब मैंने उनमें से एक को लॉग आउट किया, तो मुझे अपने जीमेल खाते में लॉगिन करना होगा। फिर से क्योंकि उस एप्लिकेशन डेवलपर ने यह निर्णय लिया कि, जब मैं उसके आवेदन से लॉग आउट होता हूं, तो मुझे Google से भी लॉग आउट होना चाहिए? यह वास्तव में तेजी से पुराना हो रहा है। संक्षेप में, आप वास्तव में ऐसा नहीं करना चाहते ...
हाँ, जो भी हो, मैं अभी भी उपयोगकर्ता को Google से लॉग आउट करना चाहता हूं, बस मुझे बताएं कि मैं यह कैसे करूं?
इसके साथ ही, यदि आप अभी भी किसी उपयोगकर्ता को Google से लॉग आउट करना चाहते हैं, और यह महसूस करते हैं कि आप उनके वर्कफ़्लो को अच्छी तरह से बाधित कर सकते हैं, तो आप डायनामिक रूप से उनके किसी एक Google सेवा लॉगआउट बटन से लॉग इन कर सकते हैं, और फिर उसका उपयोग कर सकते हैं। एक img तत्व या एक स्क्रिप्ट टैग:
<script type="text/javascript"
src="https://mail.google.com/mail/u/0/?logout&hl=en" />
या
<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />
या
window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";
यदि आप अपने उपयोगकर्ता को लॉगआउट पृष्ठ पर पुनर्निर्देशित करते हैं, या इसे ऐसे तत्व से आमंत्रित करते हैं जो क्रॉस-डोमेन प्रतिबंधित नहीं है, तो उपयोगकर्ता Google से लॉग आउट हो जाएगा।
ध्यान दें कि यह जरूरी नहीं है कि उपयोगकर्ता आपके एप्लिकेशन से लॉग आउट हो जाएगा , केवल Google। :)
सारांश:
आपके लिए यह ध्यान रखना महत्वपूर्ण है कि जब आप अपने ऐप का लॉगआउट करते हैं, तो आपको उपयोगकर्ता को पासवर्ड दोबारा दर्ज करने की आवश्यकता नहीं है। यह पूरी बात है! यह Google के खिलाफ प्रमाणित होता है, इसलिए उपयोगकर्ता को अपने वेब एप्लिकेशन में बार-बार अपना पासवर्ड दर्ज करना पड़ता है और वह उसका उपयोग करता है। इसका उपयोग कुछ हो रहा है, लेकिन यह जान लें कि जब तक उपयोगकर्ता Google में लॉग इन होता है, तब तक आपके ऐप को इस बारे में चिंता करने की आवश्यकता नहीं है कि उपयोगकर्ता वह है या नहीं, जो वह / वह कहता है।
OAuth के साथ Google प्रोफ़ाइल जानकारी का उपयोग करके मेरे पास एक परियोजना में समान कार्यान्वयन है। मैंने वही कोशिश की जिसे आप आज़माना चाह रहे हैं, और यह वास्तव में लोगों को तब गुस्सा दिलाता है जब उन्हें बार-बार Google में लॉगिन करना पड़ता था, इसलिए हमने उन्हें Google से लॉग आउट करना बंद कर दिया। :)