कौन सा अधिक सुरक्षित है और क्यों?
वे दोनों सुरक्षित हैं, यह उस वातावरण पर निर्भर करता है जिसका आप उपयोग कर रहे हैं।
मुझे एक कारण नहीं दिखता है कि एक अतिरिक्त कदम (टोकन के लिए विनिमय प्राधिकरण कोड) एक काम के प्रवाह में क्यों जोड़ा जाता है जब सर्वर सीधे एक्सेस टोकन जारी कर सकता है।
यह आसान है। आपका ग्राहक सुरक्षित नहीं है। आइए इसे विवरण में देखें।
इस बात पर विचार करें कि आप किसके खिलाफ एक एप्लिकेशन विकसित कर रहे हैं Instagram API
, इसलिए आप अपने एपीपी को पंजीकृत करें Instagram
और परिभाषित करें कि API's
आपको क्या चाहिए। Instagram
आपको client_id
और प्रदान करेगाclient_secrect
वेब साइट पर आप एक लिंक सेट करते हैं जो कहता है। "आओ और मेरे आवेदन का उपयोग करें"। इस पर क्लिक करके आपके वेब एप्लिकेशन को दो कॉल करने चाहिए Instagram API
।
First
Instagram Authentication Server
नीचे के मापदंडों के साथ एक अनुरोध भेजें ।
1. `response_type` with the value `code`
2. `client_id` you have get from `Instagram`
3. `redirect_uri` this is a url on your server which do the second call
4. `scope` a space delimited list of scopes
5. `state` with a CSRF token.
आप नहीं भेजते हैंclient_secret
, आप क्लाइंट (उपयोगकर्ता और उसके ब्राउज़र पर भरोसा नहीं कर सकते हैं जो आपको एप्लिकेशन का उपयोग करने की कोशिश करते हैं)। ग्राहक url या जावा स्क्रिप्ट देख सकता है और client_secrect
आसानी से ढूँढ सकता है। यही कारण है कि आपको एक और कदम की आवश्यकता है।
आप एक प्राप्त code
और state
। code
यहाँ है temporary
और किसी भी जहां सहेजा नहीं गया है।
फिर आप (अपने सर्वर से) second
को कॉल करेंInstagram API
1. `grant_type` with the value of `authorization_code`
2. `client_id` with the client identifier
3. `client_secret` with the client secret
4. `redirect_uri` with the same redirect URI the user was redirect back to
5. `code` which we have already received.
जैसा कि कॉल हमारे सर्वर से किया जाता है हम सुरक्षित रूप से उपयोग कर सकते हैं client_secret
(जो दिखाता है कि हम कैसे हैं) code
जिसके साथ उपयोगकर्ता ने client_id
संसाधन का उपयोग करने के लिए दी है।
जवाब में हमारे पास होगा access_token