আমি এই নিবন্ধটি পড়েছিলাম যা কয়েক বছরের পুরনো তবে আপনার REST এপিআইগুলি সুরক্ষিত করার একটি চতুর উপায় বর্ণনা করে। মূলত:
- প্রতিটি ক্লায়েন্টের একটি অনন্য পাবলিক / প্রাইভেট কী জুড়ি রয়েছে
- কেবল ক্লায়েন্ট এবং সার্ভারই ব্যক্তিগত কী জানে; এটি কখনও তারের মাধ্যমে প্রেরণ করা হয় না
- প্রতিটি অনুরোধের সাথে, ক্লায়েন্ট বেশ কয়েকটি ইনপুট নেয় (সম্পূর্ণ অনুরোধ নিজেই, বর্তমান টাইমস্ট্যাম্প এবং প্রাইভেট কী) এবং অনুরোধের একটি হ্যাশ উত্পাদন করতে এইচএমএসি ফাংশনের মাধ্যমে তাদের চালায়
- ক্লায়েন্ট তারপরে সাধারণ অনুরোধটি (যাতে সর্বজনীন কী থাকে) এবং হ্যাশটি সার্ভারে প্রেরণ করে
- সার্ভারটি ক্লায়েন্টের ব্যক্তিগত কী (সরবরাহিত পাবলিক কী এর উপর ভিত্তি করে) সন্ধান করে এবং কিছু টাইমস্ট্যাম্প চেক করে (যা স্বীকার করে নিলাম যে আমি বুঝতে পারি না) যা অনুরোধটি যাচাই করে তা রিপ্লে আক্রমণটির শিকার নয়
- সবকিছু ঠিকঠাক থাকলে সার্ভারটি ব্যক্তিগত কী এবং একই এইচএমএসি ফাংশনটি অনুরোধের নিজস্ব হ্যাশ তৈরি করতে ব্যবহার করে
- সার্ভারটি তখন উভয় হ্যাশের সাথে তুলনা করে (ক্লায়েন্টের দ্বারা প্রেরিত একটি এবং এটি উত্পন্ন করা একটি); যদি তারা মিলে যায় তবে অনুরোধটি প্রমাণীকৃত হয় এবং এগিয়ে যাওয়ার জন্য অনুমতি দেওয়া হয়
আমি তখন জেডব্লিউটি জুড়ে হোঁচট খেয়েছি , যা খুব মিল বলে মনে হচ্ছে। তবে প্রথম নিবন্ধটি জেডাব্লুটিটির মোটেও উল্লেখ করে না, এবং তাই আমি ভাবছি যে JWT উপরের লেখার সমাধানের চেয়ে আলাদা এবং যদি তাই হয় তবে কীভাবে।