2017-03-18 32 views
6

उपभोग करने के लिए एंड्रॉइड ऐप में Google साइनइन मैं Google क्लाउड एंडपॉइंट बैकएंड के साथ एक एंड्रॉइड ऐप लिख रहा हूं, और मैं अपने बैकएंड को Google साइनइन से प्रतिबंधित करना चाहता हूं।क्लाउड एंडपॉइंट्स बैकएंड

मैंने Android instructions का पालन किया है, और सफलतापूर्वक लॉग इन किया है। दूसरे शब्दों में, मुझे एक टोकन प्राप्त हुआ है, जिसे मैं सर्वर पर भेज सकता हूं और उस उपयोगकर्ता को सत्यापित कर सकता हूं जिसके लिए यह खड़ा है। महान।

हालांकि, मुझे यहां बड़ी तस्वीर याद आ रही है। प्रश्न:

  1. क्या मुझे सर्वर पर प्रत्येक अनुरोध के साथ यह टोकन भेजना है, और प्रत्येक अनुरोध में इसे सत्यापित करने की प्रक्रिया दोहराएं?
  2. यदि हां, तो टोकन किसी बिंदु पर समाप्त हो जाएगा (1 घंटा मुझे विश्वास है)। मुझे लगता है कि उपयोगकर्ता को फिर से लॉगिन करने की ज़रूरत नहीं है, इससे बचने के लिए दूर होना चाहिए, है ना?
  3. टोकन रीफ्रेश करने का एक तरीका है (मुझे लगता है कि Google साइनिन OAuth2 है)?
  4. और सबसे महत्वपूर्ण बात यह है कि क्या यह मानक तरीका है कि कोई व्यक्ति अपने बैकएंड की रक्षा के लिए Google साइनइन का उपयोग करता है? मैं यह बहुत सरल प्रक्रिया होने की उम्मीद कर रहा था, क्योंकि मैं केवल Google उत्पादों का उपयोग कर रहा हूं। हालांकि, मैं पहेली के टुकड़ों के साथ एंड्रॉइड और क्लाउड एनपॉइंट्स पर प्रलेखन के पृष्ठों और पृष्ठों में खुद को खो रहा हूं।

किसी भी मदद या अंतर्दृष्टि की सराहना की जाती है।

+0

यदि आप केवल Google साइन-इन का समर्थन करते हैं, तो हाँ, आप क्लाइंट लाइब्रेरी द्वारा बैकएंड अनुरोधों के लिए प्राधिकरण के रूप में प्रदान किए गए आईडी टोकन का उपयोग कर सकते हैं और हर बार टोकन सत्यापित कर सकते हैं। प्रत्येक अनुरोध के लिए नया (या कैश) टोकन प्राप्त करने के लिए silentSignIn का उपयोग करें: https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInApi#silentSignIn(com.google .android.gms.common.api.GoogleApiClient) –

+0

आम तौर पर एक बैकएंड सिस्टम अन्य प्रकार के प्रमाणीकरण (जैसे साइट का अपना उपयोगकर्ता नाम/पासवर्ड) का समर्थन करेगा और Google साइन-इन और पासवर्ड उपयोगकर्ताओं दोनों के लिए समान प्रबंधन सत्र का उपयोग करेगा (सेट एक कुकी और इसे प्राधिकरण के रूप में उपयोग करें या रीफ्रेश और टोकन सत्र प्रबंधन तक पहुंचने के साथ उचित OAuth करें) –

उत्तर

1

मैंने एंड्रॉइड प्रमाणीकरण का उपयोग नहीं किया है, लेकिन Google इसके सभी प्रमाणीकरण के लिए outh2 का उपयोग करता है। Google एसडीके आपको oauth2 का उपयोग करने के कुछ दर्द को कम करने में मदद कर सकता है। अपने प्रश्नों का उत्तर देने के लिए

  1. हां - आप टोकन आधारित प्रमाणीकरण की दुनिया में हैं और आप प्रत्येक अनुरोध के साथ टोकन भेजते हैं।
  2. हां। टोकन एक घंटे के बाद समाप्त हो जाएगा। जब आप पहली बार oauth2 प्रमाणीकरण करते हैं, तो इसे पाने के लिए, आपको एक ताज़ा टोकन भी मिलता है। जब उपयोगकर्ता का टोकन समाप्त हो जाता है तो आप नया टोकन प्राप्त करने के लिए रीफ्रेश टोकन का उपयोग करते हैं। यह रीफ्रेश टोकन क्लाइंट साइड पर संग्रहीत किया जा सकता है। क्लाइंट को इसके अनुरोधों में से एक के दौरान मिलेगा कि मौजूदा टोकन की समयसीमा समाप्त हो गई है और रीफ्रेश टोकन
  3. का उपयोग करके एक नए टोकन के लिए अनुरोध किया जाएगा हां, आप रीफ्रेश टोकन का उपयोग करने के लिए Google रीफ्रेश टोकन यूआरएल का उपयोग करते हैं और नया टोकन प्राप्त करते हैं। मैंने नीचे Google के महत्वपूर्ण ओथ यूआरएल दिए हैं।
  4. यह वास्तव में oauth2 मेरे दोस्त को संसाधित करता है।

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

आप आम तौर पर निम्नलिखित अंतिमबिंदुओं बनाने:

:

https://webiste.com/auth/signin/{provider} 
https://webiste.com/auth/callback/{provider} 
https://webiste.com/auth/refresh/{provider} 

के बाद कि आप प्रयोग करेंगे OAuth2 के लिए गूगल यूआरएल हैं

oauth_url: 'https://accounts.google.com/o/oauth2/v2/auth', //start auth 
token_url: 'https://accounts.google.com/o/oauth2/token', //get id_token, access_token, refresh_token token 
refresh_token_url : 'https://www.googleapis.com/oauth2/v4/token', 
token_info_url: 'https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=', //validate token 

आप https://developers.google.com/identity/protocols/OAuth2 पर Google के oauth2 दस्तावेज़ों के माध्यम से भी जाना चाहेंगे।

0

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

0

ऐसा करने के लिए 3 डी पार्टी कोड का उपयोग करना सबसे अच्छा अभ्यास है। इसमें बहुत कम समय लगेगा, बहुत कम बग होगा और बाद में अन्य विधियों में विस्तार करना बहुत आसान होगा। मैं Firebase की अनुशंसा करता हूं क्योंकि यह बहुत आसान, मुफ़्त है, अच्छी तरह से काम करता है और Google के स्वामित्व में है।

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