আমি একটি RESTful API তৈরি করছি যা ব্যবহারকারীর প্রমাণীকরণের জন্য JWT টোকেন ব্যবহার করে (একটি login
শেষ পয়েন্ট দ্বারা ইস্যু করা এবং পরে সমস্ত শিরোনামে প্রেরণ করা হয়), এবং টোকেনগুলি একটি নির্দিষ্ট সময়ের পরে পুনরায় রিফ্রেশ করা দরকার (একটি renew
শেষ পয়েন্টকে অনুরোধ করে, যা একটি পুনর্নবীকরণ টোকেন দেয় )।
এটি সম্ভব যে কোনও ব্যবহারকারীর এপিআই সেশনটি টোকেনের মেয়াদ শেষ হওয়ার আগেই অবৈধ হয়ে যায়, তাই আমার সমস্ত প্রান্তটি পরীক্ষা করে শুরু হয়: 1) টোকেনটি এখনও বৈধ এবং 2) ব্যবহারকারীর সেশনটি এখনও বৈধ। সরাসরি টোকেনটি অকার্যকর করার কোনও উপায় নেই, কারণ ক্লায়েন্টরা স্থানীয়ভাবে এটি সঞ্চয় করে।
সুতরাং আমার সমস্ত শেষবিন্দুগুলিকে আমার ক্লায়েন্টদের দুটি সম্ভাব্য শর্তের সংকেত দিতে হবে: 1) সময়টি টোকন পুনর্নবীকরণের সময় বা 2) যে সেশনটি অবৈধ হয়ে গেছে, এবং তাদের আর সিস্টেমে অ্যাক্সেসের অনুমতি দেওয়া হবে না। যখন দুটি শর্তের মধ্যে একটি ঘটে তখন আমি তাদের ক্লায়েন্টদের সিগন্যাল করার জন্য আমার শেষ পয়েন্টগুলির জন্য দুটি বিকল্পের কথা ভাবতে পারি (ধরে নিই যে ক্লায়েন্টগুলি যে কোনও বিকল্পের সাথে মানিয়ে নিতে পারে):
- সেশনটি অবৈধ হয়ে গেছে বা টোকেনটির মেয়াদ শেষ হয়ে গেলে 412 কোড (পূর্বশর্ত ব্যর্থ হয়েছে)
renew
ফিরে আসার পরে এবং শেষের পয়েন্টে কল করার সময়টি , যা একটি 200 (ঠিক আছে) কোডটি ফিরিয়ে দেবে এমন একটি HTTP 401 কোড (অননুমোদিত) ফেরত করুন । - 401 রিটার্ন করুন যে সেশনটি অবৈধ বা টোকেনের মেয়াদ শেষ হয়ে গেছে aling এই ক্ষেত্রে ক্লায়েন্ট অবিলম্বে
renew
শেষ পয়েন্টটি কল করবে , যদি এটি 200 ফেরত দেয় তবে টোকেনটি রিফ্রেশ হয়, তবে যদিrenew
401 ফেরত দেয় তবে এর অর্থ ক্লায়েন্ট সিস্টেমের বাইরে চলে গেছে।
উপরের দুটি বিকল্পগুলির মধ্যে কোনটি আপনি সুপারিশ করবেন? কোনটি আরও মানক, বোঝা সহজ এবং / বা আরও বিশ্রামযোগ্য হবে? অথবা আপনি পুরোপুরি একটি ভিন্ন পদ্ধতির সুপারিশ করবেন? আপনি কোনও বিকল্প দিয়ে কোনও স্পষ্ট সমস্যা বা সুরক্ষা ঝুঁকি দেখতে পাচ্ছেন? আপনার উত্তরে যদি আপনার মতামতকে সমর্থন করে এমন বাহ্যিক উল্লেখগুলি অন্তর্ভুক্ত করে তবে অতিরিক্ত পয়েন্টগুলি।
হালনাগাদ
বন্ধুরা, দয়া করে আসল প্রশ্নটির দিকে মনোনিবেশ করুন - একটি পুনর্নবীকরণ / সেশন অবৈধতার সংকেত দেওয়ার জন্য দুটি এইচটিপি কোডের মধ্যে কোনটি সবচেয়ে ভাল? আমার সিস্টেমটি JWT এবং সার্ভার-সাইড সেশনগুলি ব্যবহার করে এমন বিষয়টিকে মনে করবেন না , এটি খুব নির্দিষ্ট ব্যবসায়িক বিধিগুলির জন্য আমার API এর এক বিশেষত্ব, এবং যে অংশের জন্য আমি সহায়তা চাইছি তা নয়;)