2011-09-09 9 views
7

के लिए प्रमाणीकरण मॉडल मैं एक सिस्टम बनाने जा रहा हूं जिसमें 2 भाग हैं: 1. PHP वेबसाइट (केकेपीएचपी)। 2. मोबाइल एप्लिकेशन (एंड्रॉइड & आईफोन)।एंड्रॉइड एप्लिकेशन

उपयोगकर्ता को हमारे सिस्टम (वेब ​​और मोबाइल एप्लिकेशन) का उपयोग करने के लिए usr & pwd के साथ लॉगिन करना होगा। लेकिन मेरे पास उपयोगकर्ता प्रमाणीकरण के साथ बहुत सारे अनुभव नहीं हैं। मुझे क्या स्टोर करना चाहिए: usr & pwd, टोकन स्ट्रिंग। मैं अपने सिस्टम (वेब ​​और मोबाइल एप्लिकेशन) के लिए "उपयोगकर्ता प्रमाणीकरण मॉडल" ढूंढना चाहता हूं।

क्या किसी के पास उपयोगकर्ता प्रमाणीकरण के बारे में अनुभव है। किसी को यह पता है कि इसे कैसे कार्यान्वित किया जाए? कोई नमूना कोड? plz मेरी मदद :)

उत्तर

13

इसी को हम हमारे अनुप्रयोगों के लिए करना है,

  1. पहले हम एक उपयोगकर्ता नाम और हमारे आवेदन से सर्वर के लिए एक पासवर्ड भेज देते हैं।

  2. सर्वर पर, वे प्रमाण-पत्र प्रमाणित करते हैं और एक प्रतिक्रिया लौटाते हैं जो अनुरोध टोकन और सॉस ध्वज का संयोजन होता है।

  3. हमारे आवेदक में, हम सॉस ध्वज की जांच करते हैं। यदि यह सेट सही है, तो हम अनुरोध टोकन को सहेजते हैं और सर्वर पर आने वाले सभी आउटगोइंग अनुरोधों के लिए इसका उपयोग करते हैं।

  4. अब जब सर्वर अनुरोध प्राप्त करता है, तो यह देखने के लिए डेटाबेस जांचता है कि उपयोगकर्ता के पास यह टोकन है या नहीं। यदि ऐसा होता है, तो यह उस समय की जांच करता है जिसमें अंतिम अनुरोध किया गया था। (यह तब होता है जब उपयोगकर्ता लॉगिन का समय समाप्त हो जाता है।)। यदि वर्तमान समय और अंतिम अनुरोध समय के बीच का अंतर आपके द्वारा निर्धारित सीमा से अधिक है, तो आपने एप्लिकेशन को जवाब दिया कि एक नया टोकन उत्पन्न करने के लिए एक नया लॉगिन अनुरोध आवश्यक है। अन्यथा आप अनुरोध जारी रखते हैं और परिणामों के साथ जवाब देते हैं।

    इस प्रकार मेरे कार्यस्थल में सर्वर पक्ष लोग ऐसा करते हैं। मैं ग्राहक पक्ष पर काम करता हूँ। लेकिन यह मूल रूप से किया जाता है।

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

तो जब उपयोगकर्ता थर्म सर्वर के लिए एक और अनुरोध भेजता है, तो हम पहले टोकन लेते हैं और जांचते हैं कि कोई उपयोगकर्ता उस टोकन के साथ मौजूद है या नहीं। यदि वहां है, तो अगली जांच यह देखने के लिए है कि यह कुछ पुराना अनुरोध टोकन है या नहीं। इसलिए हम डेटाबेस में सहेजे गए समय के साथ वर्तमान समय की जांच करते हैं। अगर अनुरोध सीमा से पहले भेजा गया था (जैसे 5 मिनट) तो हम वर्तमान समय के साथ डेटाबेस में अंतिम अनुरोध समय अपडेट करते हैं और परिणाम को ग्राहक को वापस कर देते हैं।

इस विधि के साथ आप टोकन और अंतिम अनुरोध समय की जांच करके प्रत्येक अनुरोध के लिए प्रमाणीकरण कर रहे हैं।

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

यादृच्छिक टोकन उत्पन्न करने के लिए वहां कई फ़ंक्शन हैं।

+0

आपकी मदद के लिए धन्यवाद :) क्या आपके पास उपयोगकर्ता प्रमाणीकरण मॉडल के लिए अन्य विकल्प है? मैं सभी विकल्प जानना चाहता हूं :) –

+0

यह वही है जो हम आम तौर पर करते हैं। वैसे शायद अन्य अन्य विकल्पों के साथ जवाब देंगे। – blessenm

+0

आवश्यकता के आधार पर प्रमाणीकरण प्रणाली विकसित रहती है क्या आप मुझे समझने में थोड़ा सा मदद कर सकते हैं कि टोकनिंग कैसे काम करती है? जब भी कोई उपयोगकर्ता लॉग इन करता है तो क्या मुझे सर्वर की ओर एक टोकन जेनरेट करने की आवश्यकता होती है? –

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