2011-03-07 16 views
5

मैंने पढ़ा है कि मोबाइल ऐप्स से उपभोग करने के लिए वेब सर्विसेज लिखने का एक अच्छा तरीका है SOAP (भी वर्बोज़) से बचने और आरईएसटी का उपयोग करने के लिए; कई आरईएसटी उदाहरणों में मैंने देखा है कि आरईएसटी की स्टेटलेस प्रकृति के कारण सत्रों से बचना बेहतर है ... लेकिन मैं अपनी webservice का आह्वान करते समय सुरक्षा कैसे आश्वस्त कर सकता हूं? मैं एक "लॉगिन" कॉल करना चाहता हूं, फिर अगली webservice कॉल पर session_id/टोकन पास करूं ... मैं इसे कैसे कर सकता हूं?PHP रीस्ट वेब सेवा में प्रमाणीकरण कैसे संभालें?

उत्तर

3

की तरह एक json अनुरोध में (यदि आप इसे की जरूरत है और सत्र, या किसी अन्य प्रमाणन डेटा) आप उपयोगकर्ता टोकन पारित कर सकते हैं:

{"auth": {"session_id": "abc", "token":"123"}, 
"data": "your request data" 
} 

आप सुरक्षा के बारे में पागल आप प्रत्येक के बाद एक नया टोकन उत्पन्न कर सकते हैं कर रहे हैं उपयोगकर्ता लॉगिन और यहां तक ​​कि टोकन के लिए जीवन का समय भी है।

+0

कैसे करता है कि भरोसेमंदता के साथ जाओ? क्या यह सिर्फ समस्या को हल नहीं करता है? – xtofl

4

स्वच्छतम तरीका HTTP प्रमाणीकरण का उपयोग करेगा। हालांकि यह आपके द्वारा उल्लिखित लॉगिन + सत्रित तरीके से नहीं होगा, यह बहुत साफ और अधिक सरल होगा (एपीआई कॉल अन्य एपीआई कॉल से संबंधित नहीं हैं और ग्राहकों को सत्र टाइमआउट आदि की अपेक्षा करने की आवश्यकता नहीं है)

+0

लेकिन आप इसे अपने वेब सर्वर में कैसे कार्यान्वित करते हैं? मेरा मतलब है कि मुझे HTTP प्रमाणीकरण के लिए अपने लिनक्स अपाचे वेब सर्वर में क्या करना चाहिए? –

+0

कुछ भी नहीं। आप '$ _SERVER' सरणी में प्रासंगिक फ़ील्ड को चेक करके और 401 हेडर भेजकर PHP में पूरी तरह से ऐसा कर सकते हैं यदि वे मौजूद नहीं हैं या वैध उपयोगकर्ता से मेल नहीं खाते हैं। – ThiefMaster

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