2012-01-21 19 views
9

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

मुझे लगता है कि शायद इस बारे में जाने का गलत तरीका है।

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

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

धन्यवाद।

उत्तर

8

जब उपयोगकर्ता लॉग इन करता है और लॉग इन उत्तर में यह टोकन भेजता है तो सर्वर पर ऑथ टोकन उत्पन्न करने का सही तरीका होगा। फिर इस टोकन का उपयोग बाद के अनुरोधों में किया जाता है।

इसका मतलब है कि सर्वर को उत्पन्न होने वाले ऑथ टोकन का ट्रैक रखना चाहिए। आप टोकन निर्माण के समय को भी ट्रैक कर सकते हैं और टोकन को कुछ समय बाद समाप्त कर सकते हैं।

टोकन पर्याप्त रूप से लंबे समय तक यादृच्छिक स्ट्रिंग होना चाहिए, ताकि इसे आसानी से अनुमानित न किया जा सके। इसका उत्तर कैसे दिया गया: How to generate a random alpha-numeric string?

व्यक्तिगत रूप से मैं यूयूआईडी दृष्टिकोण पसंद करता हूं।

अद्यतन:

यह समस्या पहले से ही, वेब ब्राउज़र में हल किया गया था कुकीज़ और सत्र के माध्यम से। आप अपने एंड्रॉइड अनुरोधों में इस तंत्र का पुन: उपयोग कर सकते हैं (हालांकि कुछ आरईएसटी शुद्धवादी इस दृष्टिकोण को अस्वीकार करते हैं):

  1. सर्वर पर सत्र सक्षम करें।

  2. जब एक सर्वर में उपयोगकर्ता के लॉग, सत्र के लिए कुछ डेटा जोड़ने लॉगिन के कहने समय के लिए:

    request.getSession().setAttribute("timeOfLogin", System.currentTimeMillis()); 
    
  3. के बाद से सत्र सक्षम हैं, आप भी अपने HttpClient अनुरोधों में कुकीज़ के लिए समर्थन सक्षम करना होगा: Using Cookies across Activities when using HttpClient

  4. हर बार अनुरोध किया जाता है, सर्वर को यह जांचना चाहिए कि सत्र में timeOfLogin विशेषता है या नहीं। अन्यथा इसे HTTP 401 उत्तर वापस करना चाहिए।

  5. जब उपयोगकर्ता लॉग आउट करता है, तो सर्वर लॉगआउट यूआरएल पर कॉल करें और क्लाइंट पर कुकीज़ साफ़ करें।

+0

ठीक है, तो टोकन उत्पन्न करने का तरीका है। दुष्ट! :) धन्यवाद –

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