2012-11-18 22 views
8

मैं आईफोन और अन्य मोबाइल उपकरणों को लक्षित करने वाला ऑफ़लाइन वेब ऐप बना रहा हूं। क्या कोई तरीका है कि हम WebSql स्थानीय संग्रहण का उपयोग करके उपयोगकर्ता प्रमाणीकरण को सहेज सकते हैं?उपयोगकर्ता को ऑफ़लाइन वेब ऐप के लिए लॉगिन कैसे करें?

इसलिए जब यह ऑफ़लाइन है जब आप वेब एप्लिकेशन को खोलने, मैं चाहता हूँ या तो उपयोगकर्ता पहले से ही में लॉग इन करने या उपयोगकर्ता में लॉग इन करने में सक्षम होना चाहिए।

+2

दिलचस्प सवाल, इसका मतलब है कि आपको स्थानीय रूप से उपयोगकर्ता प्रमाण-पत्रों को स्टोर करना होगा जो बहुत सुरक्षित नहीं है। आश्चर्य है कि इसे प्राप्त करने का कोई सुरक्षित तरीका या सर्वोत्तम प्रथा है या नहीं। –

+1

बस कुछ सोचने के लिए - यदि प्रमाण-पत्र की जांच करना है, तो क्लाइंट पर जावास्क्रिप्ट में परिभाषा के अनुसार, किसी के लिए आवेदन में fiddling जेएस गुणों द्वारा प्रमाणीकरण अनुकरण/बाईपास करना मुश्किल होगा। फिर मान लीजिए, उदाहरण के लिए, क्लाइंट-साइड डेटा सर्वर पर सिंक हो गया था जब आप ऑनलाइन वापस आते हैं, इससे समस्याएं पैदा हो सकती हैं। – user888734

उत्तर

1

अगर मैं सवाल सही ढंग से समझ, यह है आप कैसे कर सकते थे यह कार्य करें:

जब में प्रवेश करने (ऑनलाइन): सर्वर के विरुद्ध

  • प्रमाणित है, अगर यह सही है, WebSQL डेटाबेस में उपयोगकर्ता नाम और पासवर्ड हैश (Crypto JS का उपयोग कर उदाहरण के लिए) की दुकान।
  • यदि खाता स्थानीय डेटाबेस में पहले से मौजूद है, तो उपयोगकर्ता ने आखिरी लॉगिन के बाद अपना पासवर्ड बदल दिया है, तो एक नया हैश उत्पन्न करें।

    • स्थानीय डेटाबेस के खिलाफ प्रमाणित:

    जब (ऑफलाइन) में प्रवेश करने।

यह निश्चित रूप से उपयोगकर्ताओं को स्थानीय रूप से लॉग इन करने से पहले कम से कम एक बार ऑनलाइन संस्करण का उपयोग करके लॉग इन करने की आवश्यकता होगी। उदाहरण के लिए विंडोज 8 ऐसा करता है जब कोई डिस्कनेक्ट होने पर अपने Microsoft खाते में लॉग इन करने का प्रयास करता है।

1

मुझे नहीं पता कि क्लाइंट स्टेट डेटा (keychain in iOSAndroid में भी) को स्टोर या उपयोग करने के लिए, लेकिन वेब ऐप परिप्रेक्ष्य के लिए, आपको कुछ भी करने की ज़रूरत नहीं है। आपको कुछ भी करने की ज़रूरत नहीं है क्योंकि अगर आप सुरक्षित नहीं हो सकते हैं। लॉगिन के बाद, सर्वर HTTP only cookie सेट करेगा जो कुछ दिनों या सप्ताह के लिए रहता है। इन समय के दौरान, सर्वर पर with credentials का अनुरोध हमेशा ब्राउज़र द्वारा प्रमाणित किया जाता है। आप लॉगिन ईमेल या सर्वर से जो भी अनुरोध कर सकते हैं। अतिरिक्त सुरक्षा उद्देश्य सर्वर के लिए XSRF token का अनुरोध कर सकते हैं। उस मामले में इसे स्थानीय स्टोरेज में सहेजें। इस टोकन को खोना मतलब ज्यादा नहीं है।

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

यदि आप रुचि रखते हैं कि ये सर्वर कोड कैसे हैं, तो मुझे Appengine cross domain authentication server code के साथ स्पष्टीकरण था।

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