2010-02-09 6 views
7

मैंने हमारी साइट के कुछ उपयोगकर्ताओं को अपने स्वयं के संगठन YouTube खाते में वीडियो अपलोड करने की अनुमति देने के लिए आज Google एपीआई उठाया। मैं नहीं चाहता कि हमारे उपयोगकर्ता हमारे उपयोगकर्ता नाम और पासवर्ड को जान सकें, बल्कि अगर वे यूट्यूब पर वीडियो अपलोड करना चाहते हैं तो उन्हें विकल्प दें। अगर वे ऐसा करना चुनते हैं, तो वे चेक बॉक्स पर चेक करते हैं और सबमिट बटन दबाते हैं।Google API में वेब ऐप्स के लिए क्लाइंटलॉगिन का उपयोग करना क्यों बुरा विचार है?

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

क्या करना है इसके बारे में कोई विचार?

धन्यवाद

उत्तर

3

Google एपीआई और अन्य वीडियो सेवा प्रदाताओं एपीआई के साथ खेलने के बाद मैंने प्रमाणीकरण के बारे में बहुत कुछ सीखा है। oAuth और AuthSub दो विधियां हैं जिनका उपयोग Google खाते में तृतीय पक्ष वेब अनुप्रयोगों को प्रमाणीकृत करने के लिए करता है।

प्रक्रिया पहली बार गन्दा लग सकती है, लेकिन एक बार जब आप इसे समझ लेते हैं, तो यह बहुत बुरा नहीं होता है। निम्न छवि AuthSub प्रक्रिया को दिखाती है।

alt text

  1. वेब अनुप्रयोग उपयोगकर्ता के Google सेवा का उपयोग करने की जरूरत है है, यह गूगल के प्राधिकरण प्रॉक्सी सेवा के लिए एक AuthSub कॉल करता है।
  2. प्राधिकरण सेवा एक एक्सेस अनुरोध पृष्ठ की सेवा करके प्रतिक्रिया देती है। यह Google- प्रबंधित पृष्ठ उपयोगकर्ता को उनकी Google सेवा तक पहुंच प्रदान करने/अस्वीकार करने के लिए संकेत देता है। उपयोगकर्ता को पहले अपने खाते में लॉग इन करने के लिए कहा जा सकता है।
  3. उपयोगकर्ता यह तय करता है कि वेब एप्लिकेशन तक पहुंच प्रदान या अस्वीकार करना है या नहीं। यदि उपयोगकर्ता पहुंच से इंकार कर देता है, तो उन्हें वेब एप्लिकेशन के बजाय Google पेज पर निर्देशित किया जाता है।
  4. यदि उपयोगकर्ता पहुंच प्रदान करता है, तो प्राधिकरण सेवा उपयोगकर्ता को वेब एप्लिकेशन पर वापस रीडायरेक्ट करती है। रीडायरेक्ट में एक उपयोग के लिए एक प्राधिकरण टोकन अच्छा होता है; इसे लंबे समय तक रहने वाले टोकन के लिए आदान-प्रदान किया जा सकता है।
  5. वेब एप्लिकेशन उपयोगकर्ता के एजेंट के रूप में कार्य करने के लिए प्राधिकरण टोकन का उपयोग करके अनुरोध के साथ Google सेवा से संपर्क करता है।
  6. यदि Google सेवा टोकन को पहचानती है, तो यह अनुरोधित डेटा प्रदान करती है।

http://code.google.com/apis/accounts/docs/AuthSub.html#AuthProcess

जब आपसे अनुरोध करते हैं प्रमाणीकृत करने के लिए किया जा और उसकी/उसके google खाते में उपयोगकर्ता के संकेत, वह पहले/वह अपने आवेदन की अनुमति देता है अपने अकाउंट में काम करना है, और अगर आपके डोमेन है Google के साथ पंजीकरण नहीं किया गया है, उपयोगकर्ता को एक बुरा लाल बॉक्स मिलेगा जो उन्हें सावधान रहने के लिए कह रहा है क्योंकि वे जिस ऐप तक पहुंचने वाले हैं, उनके साथ पंजीकृत नहीं है।

पुराने स्कूल यूज़रनेम और पासवर्ड रहे हैं पर इन विधियों (मेरी राय में) के बाद के बारे में फायदे:

  1. उपयोगकर्ता के लिए बढ़ी सुरक्षा: उपयोगकर्ता आप अपने उपयोगकर्ता नाम देने के लिए नहीं करना होगा और पासवर्ड, उन्हें Google में लॉग इन करना होगा और आपको एक एक्सेस टोकन मिलेगा जिसका उपयोग आप किसी भी एपीआई कॉल करने के लिए करेंगे। यदि उपयोगकर्ता चाहें तो उपयोगकर्ता आपके एप्लिकेशन के अंदर Google से पहुंच रद्द कर सकता है।
  2. प्रक्रिया उपयोगकर्ता को आश्वासन दे सकती है कि आपका ऐप "कानूनी" है। यदि किसी उपयोगकर्ता को लॉग इन करने और अपने ऐप की अनुमति देने के लिए Google के माध्यम से जाना है, तो यह अच्छा लगेगा कि आपका डोमेन Google के साथ पंजीकृत है या नहीं।
  3. टोकन को सत्र टोकन में प्रचारित किया जा सकता है: इसका मतलब है कि आपको Google उपयोगकर्ता खाते में प्रवेश का अनुरोध करने के लिए हर बार लॉग इन करने की आवश्यकता नहीं है, बस सत्र टोकन का उपयोग करें (आपको सुरक्षित रूप से कहीं बचाओ) और आप कर रहे हैं।
  4. एक बार जब आप प्रक्रिया को समझ लें तो उपयोगकर्ताओं को प्रमाणित करना काफी आसान है।
  5. (असत्यापित) यदि उपयोगकर्ता अपना पासवर्ड बदलता है, तो आपको सुरक्षा टोकन को अपडेट करने की आवश्यकता नहीं है।
  6. आखिरकार यदि आप ओथ का उपयोग करते हैं तो आप एक इंटरफ़ेस बना सकते हैं जो आपको अन्य वेब सेवाओं जैसे Vimeo से कनेक्ट करते समय आसानी से उपयोगकर्ताओं को प्रमाणित करने की अनुमति दे सकता है!

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

AuthSub का उपयोग कर उपयोगकर्ताओं को प्रमाणित करने के तरीके पर कोड यहां पाया जा सकता है, यह बहुत अधिक प्लग एन प्ले है। बस $ _SESSION ['sessionToken'] को एक स्थायी स्थान पर डीबी जैसे सहेजने के लिए सुनिश्चित करें।

http://code.google.com/apis/youtube/2.0/developers_guide_php.html#AuthSub_for_Web_Applications

0

मैं एक ही समस्या थी है, और मैं ClientLogin का उपयोग कर समाप्त हो गया। यदि आप नहीं चाहते हैं कि आपके उपयोगकर्ता लॉगिन प्रक्रिया का कोई भी हिस्सा देखें, तो यह होगा।

मुझे नहीं पता कि ऑथसब या अन्य प्रमाणीकरण विधियों के साथ ऐसा करने का बेहतर तरीका है या नहीं।

2

ClientLogin पसंदीदा तंत्र यहाँ आपका आवेदन उपयोगकर्ता के लिए लॉगिन क्रेडेंशियल को संभालने के लिए मजबूर किया जाता है नहीं है। यदि उपयोगकर्ता की पहचान को सत्र से अधिक समय तक स्थापित करने की आवश्यकता है, तो आपको क्रेडेंशियल स्टोर करने के लिए मजबूर होना होगा और यह गैर आदर्श नहीं है - आपके सर्वर के समझौता से Google उपयोगकर्ताओं के साथ समझौता होगा। इस प्रकार क्लाइंटलॉगिन आपके आवेदन के लिए सही दृष्टिकोण नहीं है।

क्या आपने Google OAuth पर देखा है? यह पासवर्ड हैंडलिंग समस्या को सुंदर ढंग से हल करता है और एक स्थापित मानक है।

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

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