मैं एक API कुंजी के माध्यम से प्राधिकरण / प्रमाणीकरण का उपयोग करके एक REST API डिज़ाइन कर रहा हूं।
मैंने यह पता लगाने की कोशिश की कि इसके लिए सबसे अच्छी जगह क्या है और पता चला कि बहुत से लोग कस्टम HTTP हेडर का उपयोग करने का सुझाव देते हैं ProjectName-Api-Key
, जैसे:
ProjectName-Api-Key: abcde
लेकिन यह भी संभव है और वैचारिक रूप से Authorization
एक कस्टम योजना के साथ हेडर का उपयोग करने के लिए सही है , जैसे:
Authorization: ApiKey abcde
दूसरी ओर, मैंने पाया कि एक कस्टम प्राधिकरण योजना कुछ ग्राहकों द्वारा अप्रत्याशित और असमर्थित हो सकती है और वैसे भी कस्टम कोड की ओर ले जा सकती है, इसलिए कस्टम हेडर का उपयोग करना बेहतर है क्योंकि क्लाइंट को इसके बारे में कोई उम्मीद नहीं है।
आप किस तरह से एक एपीआई कुंजी भेजना पसंद करेंगे?
Bearer
योजना का उपयोग विशेष रूप से oAuth2 के साथ किया जाता है। इसे ओउथ ध्वनियों से अलग करके इसका दुरुपयोग करने जैसा लगता है। यदि OAuth नहीं है तो इस योजना का उपयोग करना सही क्यों है? वैसे, मुझे अपने एपीआई के लिए एक प्रकार का प्राधिकरण चुनने में परेशानी थी। API केवल एक विश्वसनीय सेवा के लिए उपलब्ध होगा, इसलिए मैंने oAuth2 के क्लाइंट क्रेडेंशियल प्रवाह की जांच की और मेरे मामले में ApiKey के साथ तुलना में कोई लाभ नहीं पाया।
ApiKey
इसका नाम बदल दिया गया और Access Token
एक समाप्ति समय के बिना क्लाइंट को दी गई व्याख्या की गई। यह एक तरह का दार्शनिक पहलू है, मैंने निर्णय लिया कि यदि मेरे मामले को सरल शब्दों में वर्णित किया जा सकता है तो इसे जटिल परिभाषाओं में न लाया जाए और इसे "आपीके" कहने का निर्णय लिया जाए। यदि आपका प्रोटोकॉल oAuth standart को लागू Bearer
करता है, तो मैं उपयोग करने पर सहमत हो सकता हूं , लेकिन ऐसा नहीं है, मुझे लगता है कि इस योजना को लागू नहीं किया जा सकता है।
Authorization: Bearer <token>
हेडर का उपयोग करती हैं और उस के साथ कभी भी कोई समस्या नहीं थी। टोकन JWT s हैं।