আমি একটি API কী এর মাধ্যমে অনুমোদন / প্রমাণীকরণ ব্যবহার করে একটি REST এপিআই ডিজাইন করছি।
আমি এটির জন্য সর্বোত্তম জায়গাটি কী তা নির্ধারণ করার চেষ্টা করেছি এবং জানতে পেরেছি যে অনেকে একটি কাস্টম এইচটিটিপি শিরোনাম যেমন ProjectName-Api-Key
, যেমন:
ProjectName-Api-Key: abcde
তবে এটি Authorization
কাস্টম স্কিম সহ শিরোনামটি ব্যবহার করা সম্ভব এবং আদর্শগতভাবে সঠিক , যেমন:
Authorization: ApiKey abcde
অন্যদিকে, আমি একটি বিবেচনা পেয়েছি যে একটি কাস্টম অনুমোদন প্রকল্পটি কিছু ক্লায়েন্টদের দ্বারা অপ্রত্যাশিত এবং অসমর্থিত হতে পারে এবং যাইহোক কাস্টম কোডের দিকে পরিচালিত করে, তাই ক্লায়েন্টদের সম্পর্কে কোনও প্রত্যাশা না থাকায় একটি কাস্টম শিরোনাম ব্যবহার করা ভাল।
আপনি কোন উপায় একটি API কী প্রেরণ করতে পছন্দ করবেন?
Bearer
স্কিমটি oAuth2 এর সাথে একচেটিয়াভাবে ব্যবহৃত হয়। এটি oAuth থেকে আলাদাভাবে প্রয়োগ করা এটির অপব্যবহার বলে মনে হচ্ছে। ওআউথ না থাকলে এই স্কিমটি ব্যবহার করা কেন সঠিক? যাইহোক, আমার API এর জন্য এক ধরণের অনুমোদনের চয়ন করতে আমার সমস্যা হয়েছিল। এপিআই কেবল একটি বিশ্বস্ত পরিষেবার জন্য উপলব্ধ থাকবে, তাই আমি ক্লায়েন্টের শংসাপত্রগুলি OAuth2 এর প্রবাহ তদন্ত করেছি এবং আমার ক্ষেত্রে অপিকির সাথে তুলনা করে কোনও সুবিধা পাইনি।
ApiKey
হিসাবে ব্যাখ্যা করা হয় Access Token
। এটি একধরনের দার্শনিক দিক, আমি যদি আমার কেসকে সহজ ভাষায় বর্ণনা করা যায় এবং জটিলটিকে "এপিকি" বলার সিদ্ধান্ত নিয়েছি তবে জটিল সংজ্ঞা না আনার সিদ্ধান্ত নিয়েছি। যদি আপনার প্রোটোকল oAuth স্ট্যান্ডার্ড প্রয়োগ করে, আমি ব্যবহারে সম্মত হতে পারি Bearer
, তবে এটি হয় না, আমার ধারণা এই স্কিমটি প্রয়োগ করা যাবে না।
Authorization: Bearer <token>
শিরোনাম ব্যবহার করে এবং এটির সাথে কোনও একক সমস্যা ছিল না। টোকেনগুলি জেডব্লিউটি এস।