android - Google+फेसबुक लॉगिन का उपयोग करके एंड्रॉइड ऐप के लिए स्प्रिंग बूट रिस्ट एपीआई सुरक्षा



spring-boot spring-security (1)

मैं 2 परतों के साथ एक आवेदन का निर्माण कर रहा हूं: -

1. मूल एंड्रॉइड ऐप - कम दर्दनाक पर हस्ताक्षर करने के लिए फेसबुक + Google के माध्यम से साइन इन करने की क्षमता है।

2. जावा सर्वर स्प्रिंग बूट का उपयोग कर रहा है - सामान्य एमवीसी अंतपॉइंट जैसे कि रीस्ट एपीआई + यूआई एडमिनेशन स्क्रीन।

फेसबुक ( FacebookSdk GoogleApiClient ) और Google ( GoogleApiClient ) साइनइन पार्ट्स निम्नलिखित एंड्रॉइड की निर्भरताओं का उपयोग कर काम कर रहे हैं और जांचते हैं: -

dependencies {
   compile 'com.facebook.android:facebook-android-sdk:4.6.0'
   compile 'com.google.android.gms:play-services-auth:9.0.0'
   ....

}

एपीआई वार हमारे पास है: -

/api/signin - जब एक उपयोगकर्ता सफलतापूर्वक किसी भी फेसबुक + Google के साथ साइन करता है और users डेटाबेस तालिका में एक प्रविष्टि बनाता है।

वहाँ कई अन्य एपीआई अंत बिंदु जैसे ऑफर भी हैं

/api/offers/<user_id> - रिटर्न एक पहले से पंजीकृत उपयोगकर्ता को प्रदान करता है।

मैं सबसे अच्छा अभ्यास तरीका के बारे में अनिश्चित हूँ जिसमें:

  1. एंड्रॉइड ऐप एपीआई कॉल कैसे करता है / एपीआई / साइनइन आरईटी एंडपॉइंट (यानी जो हेडर इमेज को ठीक करने के लिए भेजना ठीक है, सुरक्षा के बिना एक समापन बिंदु है, क्योंकि अपंजीकृत उपयोगकर्ता इस पर टिकी होंगे)। साथ ही, users डीबी तालिका में सहेजने के लिए कौन से फ़ील्ड ठीक हैं?

  2. एंड्रॉइड ऐप एपीआई कैसे करता है जैसे / एपीआई / ऑफर / पहले से पंजीकृत उपयोगकर्ता हैं? यानी जब टोकन आदि एंड्रॉइड ऐप पास होनी चाहिए?

  3. इन समापन बिंदुओं को सुरक्षित करने के लिए वसंत सुरक्षा का सर्वोत्तम अभ्यास तरीका

OAuth 2 को मानते हुए जाने का एक तरीका है, लेकिन कोई सलाह / संकेतक सबसे अधिक सराहना करेंगे।


उत्तर: साइनइन ऐप के समय में 1 / एपीआई / साइनइन उपयोगकर्ता को सर्वर पर सूचना भेज देगा और सर्वर टोकन उत्पन्न करेगा और यह टोकन साइन इन में वापस आ जाएगा, ऐप इस टोकन को बचा सकता है, यह समय पर बदल सकता है। आप वॉली, रेट्रोफाइट आदि जैसी वेब सेवा के लिए किसी भी http लाइब्रेरी का उपयोग कर सकते हैं।

फ़ील्ड जिसे आपको डीबी में संग्रहित करने की आवश्यकता है: userId, userName, userToken

उत्तर: 2 / एपीआई / ऑफ़र / आप उपयोगकर्ता के यूजर आईडी को डीबी में देख सकते हैं, अगर वहां मौजूद है, तो आप पहले से ही वेब सर्विस रिस्पॉन्स में संदेश भेज देंगे।

उत्तर: 3 अपनी वेब सेवा के लिए एसएसएल कार्यान्वयन का उपयोग करें जो कि ज्यादा सुरक्षित होगा, और जैसा कि आपने उल्लेख किया है कि आप हर उपयोगकर्ता के लिए टोकन का उपयोग करने जा रहे हैं, यह केवल प्रमाणित उपयोगकर्ता के लिए सुलभ होगा।

नोट: - टोकन को हर 30 मिनट या जो कुछ भी समय चाहते हैं, वह आपकी प्रमाणीकरण की कार्यक्षमता को अधिक सुरक्षित बना देगा।