2015-05-27 18 views
5

स्टोर करने के लिए 'साझा किए गए संदर्भ' का उपयोग करें, मैं अपने सर्वर पर टोकन आधारित प्रमाणीकृत तंत्र का उपयोग करता हूं। जब एंड्रॉइड ऐप के माध्यम से उपयोगकर्ता लॉग इन करता है तो सर्वर टोकन देता है जिसे प्रत्येक बाद के अनुरोध के साथ भेजा जाना चाहिए। मुझे डिवाइस पर उस मूल्य को स्टोर करने की आवश्यकता है। चूंकि टोकन एक साधारण स्ट्रिंग है, मैंने सोचा कि मैं उस मान को पकड़ने के लिए SharedPreferences का उपयोग करूंगा। जब एप्लिकेशन MyApplication extends Application के अंदर शुरू होता है तो मैं इस टोकन के लिए SharedPreferences क्वेरी करता हूं और इसे MyApplication के अंदर वैश्विक स्थिति के रूप में रखता हूं ताकि सर्वर पर अनुरोध भेजते समय हर गतिविधि इसे एक्सेस कर सके।प्रमाणीकरण टोकन

क्या यह दृष्टिकोण व्यवहार्य है? यदि नहीं, तो इसमें क्या महत्वपूर्ण कमी है? और यदि यह एक बुरा विचार है, तो वैकल्पिक दृष्टिकोण क्या है?

पीएस। यह एक व्यक्तिपरक प्रश्न नहीं है - मैं the best दृष्टिकोण के लिए नहीं पूछ रहा हूं, मैं अपनी धारणाओं को मान्य कर रहा हूं।

+1

क्या आपने एंड्रॉइड खाता प्रबंधक का उपयोग करने पर विचार किया है? setAuthToken और getAuthToken के साथ? – ataulm

+0

मुझे संकेत नहीं है, संकेत के लिए धन्यवाद। पहली नज़र में 'साझाकरण' के माध्यम से टोकन रखने के बावजूद इसे लागू करना अधिक कठिन लगता है। लेकिन मैं इसे भविष्य के लिए –

+0

पर विचार कर सकता हूं हाँ यह निश्चित रूप से सिरदर्द है। बस "उचित" दृष्टिकोण है। – ataulm

उत्तर

4

पर विचार कर सकता हूं यह काफी सुरक्षित है। उपयोगकर्ताओं को SharedPreferences तक पहुंच नहीं है जब तक कि वे अपने डिवाइस को रूट नहीं करते हैं। यदि आप सुरक्षा के बारे में चिंतित हैं, तो आप इसे SharedPreferences के अंदर संग्रहीत करने से पहले टोकन एन्क्रिप्ट कर सकते हैं।

2

यह एक मान्य विकल्प है, यदि आप database का उपयोग नहीं करना चाहते हैं या फ़ाइल पर टोकन लिखना चाहते हैं। कोई दोष नहीं है कि मैं

1

डिवाइस की जड़ होने पर यह एक गलती है। डिवाइस रूट होने पर उपयोगकर्ता अपने डिवाइस से साझा किए गए संदर्भों से टोकन देख सकता है। मेरा सुझाव है कि आप अपने सर्वर के बेहतर दृष्टिकोण के लिए चीनी here का उपयोग कर डेटाबेस/SQLite को डेटा स्टोर करने के लिए सुझाव दें।

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