2012-10-11 16 views
6

टोकन आधारित प्रमाणीकरण प्रणाली को लागू करने के लिए कुछ प्रस्तावों के बारे में सामान्य बिंदु-से-त्रुटियों के बारे में सवाल, तथ्य से प्रेरित नोड.जेएस में कुछ तैयार नहीं है ।टोकन आधारित प्रमाणीकरण (Node.js में)

चूंकि हम अपने डेटा स्टोर में हेरफेर करने के लिए एक राज्य-कम एपीआई सर्वर बनाना चाहते हैं, इसलिए हम अपने उपयोगकर्ताओं को एक ऑथ टोकन ('सवारी करने के लिए टिकट') प्रदान करना चाहते हैं, जिसे प्रत्येक कॉल में एपीआई में शामिल किया जाएगा।

प्रश्न यह है कि इस टोकन को सुरक्षित तरीके से कैसे उत्पन्न किया जाए।

[विचार 1] - उपयोगकर्ता सर्वर करने के लिए (उपयोगकर्ता के आईडी, पासवर्ड-हैश) भेज कर एक प्रमाणीकरण टोकन का अनुरोध करता है - सर्वर - सर्वर (user_id, EXPIRY_DATE), API सर्वर यादृच्छिक कुंजी द्वारा हस्ताक्षर किए के साथ प्रतिक्रिया प्रत्येक अनुरोध पर टोकन की वैधता की जांच कर सकते हैं - उपरोक्त के समान है, लेकिन पासवर्ड हैश के भेजने से बचने - - सर्वर समय

[विचार 2] का एक सीमित अवधि के लिए टोकन स्टोर करने के लिए की आवश्यकता होगी उपयोगकर्ता एक प्रमाणन का अनुरोध करता टोकन - सर्वर उपयोगकर्ता को एक चुनौती भेजता है, उपयोगकर्ता को उसके (user_id, password_hash) जोड़ी - सर्वर के साथ चुनौती है इस पुष्टि करता है और उसके बाद प्रति विचार के रूप में टोकन जेनरेट करता 1.

[विचार 3] - एक प्रमाणीकरण टोकन, हर अनुरोध में भेजा के रूप में पासवर्ड हैश ही प्रयोग करें, टोकन प्रबंधन समस्या से बचने के लिए - सरल लेकिन फिर कोई समय पाबंदी

[विचार 4] - 2 लेकिन challenged_hashed_by_ (user_id, password_hash) के रूप में एक ही टोकन हो जाता है और हर अनुरोध में भेजा

किसी भी संकेत दिए गए

+0

इसे देखें: http://stackoverflow.com/questions/11187342/mongoose-express- Authorization-on-http-verbs – freakish

उत्तर

0

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