2015-02-23 8 views
8

द्वारा उपयोग किए गए किसी अन्य उपयोगकर्ता के साथ क्रोम एक्सटेंशन में लॉग इन करें मेरे पास क्रोम एक्सटेंशन है जो उपयोगकर्ता को chrome.identity.getAuthToken मार्ग का उपयोग करके लॉगिन करने का अनुरोध करता है। यह ठीक काम करता है, लेकिन जब आप लॉगिन करते हैं तो आप केवल उन उपयोगकर्ताओं का उपयोग कर सकते हैं जिनके पास आपके पास क्रोम में खाते हैं।क्रोम

ग्राहक एक अलग Google खाते से लॉगिन करने में सक्षम होना चाहते हैं; तो [email protected] का उपयोग करने के बजाय, जिस खाते में क्रोम साइन इन है, वे [email protected] का उपयोग करके लॉगिन करने में सक्षम होना चाहते हैं, जो एक वैध Google खाता भी है।

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

क्या यह संभव है?

उत्तर

12

chrome.identity.getAuthToken का उपयोग कर उपयोगकर्ता को प्रमाणीकृत करने के बजाय, केवल OAuth भाग को स्वयं लागू करें।

आप पुस्तकालयों का उपयोग करने में आपकी सहायता के लिए उपयोग कर सकते हैं, लेकिन आखिरी बार मैंने सबसे उपयोगी लाइब्रेरी (Google API क्लाइंट) को क्रोम एक्सटेंशन पर काम नहीं किया।

अधिक जानकारी के लिए Google OpenID Connect दस्तावेज़ीकरण देखें। अंत में आपको केवल उपयोगकर्ता को OAuth URL पर रीडायरेक्ट करना है, Google के उत्तर (प्राधिकरण कोड) प्राप्त करने के लिए अपने एक्सटेंशन का उपयोग करें और फिर प्राधिकरण कोड को एक्सेस टोकन में परिवर्तित करें (यह एक साधारण पोस्ट कॉल है)।

चूंकि क्रोम एक्सटेंशन के लिए आप किसी वेब सर्वर पर रीडायरेक्ट नहीं कर सकते हैं, तो आप installed app रीडायरेक्ट यूआरआई: urn:ietf:wg:oauth:2.0:oob का उपयोग कर सकते हैं। इस Google के साथ प्राधिकरण कोड वाला एक पृष्ठ प्रदर्शित होगा।

प्राधिकरण कोड प्राप्त करने के लिए, इस पृष्ठ में कुछ जावास्क्रिप्ट कोड इंजेक्ट करने के लिए अपने एक्सटेंशन का उपयोग करें, HTML पृष्ठ बंद करें, उपयोगकर्ता के ईमेल प्राप्त करने के लिए POST कॉल करें।

+0

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

+1

यह तकनीक काम करती है अगर आपको उपयोगकर्ता के ईमेल/नाम की आवश्यकता है। यदि आपको क्रोम वेबस्टोर के लाइसेंसिंग एपीआई से कनेक्ट करने की आवश्यकता है, तो आपको डेवलपर कंसोल में "क्रोम ऐप" बनाना होगा जो केवल chrome.identity.getAuthToken –

+1

के साथ काम करेगा। क्या आप इस भाग को समझा सकते हैं: "बस कुछ विस्तार करने के लिए अपने एक्सटेंशन का उपयोग करें प्राधिकरण कोड प्राप्त करने के लिए इस पृष्ठ में जावास्क्रिप्ट कोड, HTML पृष्ठ बंद करें, उपयोगकर्ता के ईमेल प्राप्त करने के लिए POST कॉल करें। " मुझे यकीन नहीं है कि उपयोगकर्ता प्रवाह को पूरा करने के बाद प्राधिकरण पृष्ठ में कैसे जुड़ना है। – Cory