कौन सा अधिक सुरक्षित है और क्यों?
वे दोनों सुरक्षित हैं, यह उस वातावरण पर निर्भर करता है जिसका आप उपयोग कर रहे हैं।
मुझे एक कारण नहीं दिखता है कि एक अतिरिक्त कदम (टोकन के लिए विनिमय प्राधिकरण कोड) एक काम के प्रवाह में क्यों जोड़ा जाता है जब सर्वर सीधे एक्सेस टोकन जारी कर सकता है।
यह आसान है। आपका ग्राहक सुरक्षित नहीं है। आइए इसे विवरण में देखें।
इस बात पर विचार करें कि आप किसके खिलाफ एक एप्लिकेशन विकसित कर रहे हैं Instagram API, इसलिए आप अपने एपीपी को पंजीकृत करें Instagramऔर परिभाषित करें कि API'sआपको क्या चाहिए। Instagramआपको client_idऔर प्रदान करेगाclient_secrect
वेब साइट पर आप एक लिंक सेट करते हैं जो कहता है। "आओ और मेरे आवेदन का उपयोग करें"। इस पर क्लिक करके आपके वेब एप्लिकेशन को दो कॉल करने चाहिए Instagram API।
FirstInstagram 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