2012-05-18 20 views
8

शुरुआती प्रश्न के लिए क्षमा।RESTful, उपयोगकर्ता प्रमाणीकरण, और Django-tastypie

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

(1) गैर-सार्वजनिक उपयोग के लिए django-tastypie उचित (या यहां तक ​​कि सर्वोत्तम अभ्यास) जैसे किसी अन्य द्वारा उत्पादित एक बाकी एपीआई है - यानी, जब मैं केवल अपने अनुप्रयोगों के माध्यम से इस डेटा तक पहुंच प्रदान करना चाहता हूं?

(2) बाकी एपीआई में लॉगिन-पहुंच बनाने में, क्या मैं अपने वेब-ऐप के सभी उपयोगकर्ताओं के लिए लॉगिन बना रहा हूं - या क्या मैं खुद और मेरा वेब एप्लिकेशन के लिए लॉगिन बना रहा हूं? क्या उपयोगकर्ता को मेरे वेबपैड में खातों को शेष API तक पहुंचने के लिए खातों से अलग माना जाना चाहिए?

असल में, मैं Django और django-tastypie का उपयोग करके एक एप्लिकेशन बनाना चाहता हूं जो उपयोगकर्ताओं को लॉगिन करने की अनुमति देगा, & ऑब्जेक्ट्स देखें, उपयोगकर्ताओं की सदस्यता लें और उनकी ऑब्जेक्ट देखें। मैं अपने विचारों में प्रासंगिक डेटा को क्रमबद्ध करने और अद्यतन करने के निर्माण के साथ आसानी से अपने स्वयं के जावास्क्रिप्ट उद्देश्यों के लिए Tastypie API का उपयोग करना चाहता हूं। इस तस्वीर के भीतर ये उपयोगकर्ता खाते कहां फिट होते हैं? धन्यवाद!

+0

आपका पॉइंट नंबर 2 मेरे लिए बहुत स्पष्ट नहीं है।क्या आपके एपीआई के उपयोगकर्ता के रूप में आपके एप्लिकेशन नहीं हो सकते हैं (जो कि फिर से एक डीजेंगो प्रोजेक्ट है, मैं अनुमान लगा रहा हूं)? – zubinmehta

उत्तर

4

अगर मैं सही ढंग से समझ, आप दो अलग-अलग प्रमाणन चिंताओं यहाँ के साथ काम कर रहे हैं: (ए) एपीआई तक पहुंच - अपने वेब/मोबाइल एप्लिकेशन केवल (बी) एपीआई के माध्यम से उपयोगकर्ता डेटा तक पहुंच - के माध्यम से उपयोगकर्ताओं के लिए अपने वेब/मोबाइल ऐप

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

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

यदि आप सब कुछ के लिए एसएसएल का उपयोग करते हैं, तो आपको अपनी कुंजी खोजने के लिए हमलों को सूँघने से सुरक्षित होना चाहिए। मुझे लगता है कि यहां सबसे कमजोर बिंदु यह होगा कि कोई भी कुंजी ढूंढने के लिए आपके मोबाइल ऐप को रिवर्स इंजीनियर कर सकता है, क्योंकि आपको ऐप में कुंजी स्टोर करना होगा।

(बी) के लिए, django ऑथ सिस्टम का उपयोग करें। Tastypie बेसिक या एपीकी Authenticators आपको एपीआई में और उसके माध्यम से उपयोगकर्ताओं को लॉग इन करने की अनुमति देनी चाहिए, और उनकी अनुमतियों के आधार पर, डेटा एक्सेस या डेटा के आधार पर। मुझे लगता है कि आप दूसरे प्रश्न में क्या पूछ रहे थे?

मुझे नहीं लगता कि आप सत्र (ए) और (बी) दोनों के लिए एक ही ऑथ मॉडल का उपयोग कर सकते हैं यदि आप सत्र का उपयोग कर रहे हैं, क्योंकि आपके पास एक ही समय में दो सक्रिय सत्र नहीं हो सकते हैं।

+0

उत्तर के लिए धन्यवाद। मैं थोड़ी देर बाद चले गए, लेकिन बुनियादी सिद्धांतों से अभी भी उलझन में था। – bento

+0

@sid ApiKey प्रमाणीकरण और आपके द्वारा वर्णित गुप्त कुंजी प्रमाणीकरण के बीच क्या अंतर है (ए)? –

0

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

पीएस: मैं भी एक नौसिखिया हूं इसलिए यदि आप चाहें तो हम संपर्क में रह सकते हैं।

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