2013-07-13 11 views
7

का उपयोग करके अपने ऐप तक पहुंचने की अनुमति देने का सबसे अच्छा तरीका यदि आपके पास एक एंड्रॉइड एप्लिकेशन है जिसके लिए उपयोगकर्ता पंजीकरण की आवश्यकता है और आप अपने उपयोगकर्ताओं को Google के माध्यम से लॉगिन करने की अनुमति देना चाहते हैं, तो आप इसे कैसे संभालेंगे?उपयोगकर्ताओं को अपने Google क्रेडेंशियल

मैं यहां चर्चा से Google+ साइन-इन रखना चाहता हूं। हम Google API तक पहुंचने के लिए उपयोगकर्ता प्रमाण-पत्रों का भी उपयोग नहीं कर रहे हैं और मुझे Google+ की सामाजिक सुविधाओं तक अतिरिक्त पहुंच में रूचि नहीं है।

उपयोग प्रमाणीकरण के लिए OAuth2.0

Google OAUth2 Login पेज

यह वास्तव में एंड्रॉयड का उल्लेख नहीं है में प्रलेखित लेकिन यह है (:

वहाँ विकल्पों में से एक नंबर हो रहा है आंशिक रूप से) ओएथ 2 एक्सेस टोकन के आधार पर, लेकिन जेएसओएन वेब टोकन id_token के सत्यापन पर अधिक महत्वपूर्ण बात है।

उपयोगकर्ताओं को प्रमाणित करने के इस तरीके में उपयोगकर्ताओं को अपने Google खाते में लॉगिन करने और id_token के जटिल सत्यापन की अनुमति देने के लिए एक वेबव्यू लॉन्च करना भी शामिल है।

उपयोग OAuth2/Google Play सेवाओं

वहाँ एक नमूने में Google Play सेवाओं है कि प्राधिकरण के बारे में अधिक ध्यान केंद्रित है। यह access_token पुनर्प्राप्त करने के लिए GoogleAuthUtil.getToken का उपयोग करता है। इसका एक हिस्सा निश्चित रूप से प्रमाणीकरण है, क्योंकि संवाद "साइन इन ..." कहता है।

enter image description here

Am मुझे लगता है कि यह एक बुरा व्यवहार एक प्रमाणीकरण तंत्र के रूप में ACCESS_TOKEN साथ OAuth2.0 प्रवाह का उपयोग करने के लिए सही हूँ? (प्रमाणीकरण टोकन के रूप में पहुंच टोकन संग्रहित)।

सहायक फेसबुक/ट्विटर लॉगिन

कारण मैं पूछ रहा हूँ क्योंकि जिस तरह से ट्विटर और फेसबुक सुझाव है कि आप लागू करने के लिए एक प्रमाणीकरण प्रक्रिया "के साथ ... प्रवेश करें" का है

यह भी प्रतीत हो रहा है ओएथ एक्सेस टोकन पर पूरी तरह से आधारित है।

कोई अन्य विकल्प जिनके बारे में मुझे पता नहीं है, वे आपको अपने Google खाते से उपयोगकर्ताओं को प्रमाणीकृत करने की अनुमति देते हैं?

उत्तर

4

आपको क्या करना होगा इस http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html

यानी एक आईडी टोकन मिलता है और इसका इस्तेमाल बैकएंड में साइन-इन करने के लिए है आपके आवेदन का

आप सही हैं। सामान्य रूप से, प्रमाणीकरण के लिए पहुंच टोकन का उपयोग करना एक बुरा विचार है।हमने इसके बारे में सावधानी बरतने के लिए कई प्रस्तुतियां की हैं। https://docs.google.com/presentation/d/1klTZheiQIhcty6MKvTYS12cw1Vyn4T1R4d60QCRYM60/edit?usp=drive_web

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

+0

इस कुकबुक को भी देखें https://developers.google.com/accounts/cookbook/platforms/Hybrid – nvnagr

+0

वास्तव में एंड्रॉइड पर ऐसा करने का एक अच्छा तरीका दिखता है जिसमें Google प्लस शामिल नहीं है। (यह Google Play सेवाओं के साथ निर्भरता है) +1 प्रस्तुति के लिए भी। – ddewaele

+1

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

2

सिफारिश तरीके से उपयोग करने के लिए है नई Google+ प्रवेश: https://developers.google.com/+/mobile/android/sign-in

+2

मुझे वास्तव में Google+ की सामाजिक सुविधाओं तक अतिरिक्त पहुंच में रूचि नहीं है और मैं Google API तक नहीं पहुंचना चाहता हूं। मैं बस एक प्रमाणीकरण प्रदाता के रूप में Google का उपयोग करना चाहता हूँ। – ddewaele

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