JWT (JSON Web Token)

JWT (JSON Web Token)
October 21, 2024
No Comments
1 min read

JWT (JSON Web Token) প্রমাণীকরণ হল একটি পদ্ধতি যা ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদে তথ্য স্থানান্তর করার জন্য ব্যবহৃত হয়। এই তথ্যটি JSON অবজেক্ট আকারে প্রেরণ করা হয় এবং এটি ডিজিটালভাবে স্বাক্ষরিত হয়, যাতে এটি যাচাইযোগ্য এবং বিশ্বাসযোগ্য হয়।

JWT প্রমাণীকরণের মূল ধারণা:

  1. টোকেনের গঠন: একটি JWT তিনটি অংশ নিয়ে গঠিত, যা বিন্দু দ্বারা পৃথক হয়:
  • হেডার: টোকেন সম্পর্কিত মেটাডেটা ধারণ করে, যেমন কোন স্বাক্ষর অ্যালগরিদম (যেমন HMAC, SHA256) ব্যবহার করা হয়েছে।
  • পেলোড: টোকেনের মূল অংশ, যেখানে দাবিগুলি (claims) থাকে। দাবিগুলি হল ব্যবহারকারীর সম্পর্কে বিবৃতি (যেমন তাদের আইডি বা অনুমতি) বা যেকোনো অতিরিক্ত তথ্য যা আপনি অন্তর্ভুক্ত করতে চান।
  • স্বাক্ষর: হেডার এবং পেলোডের ভিত্তিতে গোপন চাবি বা প্রাইভেট কি দিয়ে তৈরি করা হয়। এটি নিশ্চিত করে যে ডেটার অখণ্ডতা বজায় রয়েছে।
  1. স্বাক্ষর প্রক্রিয়া: ব্যবহারকারী লগইন করার সময় বা প্রমাণীকরণ করার সময়, সার্ভার একটি JWT তৈরি করে এবং এটি একটি গোপন চাবি বা পাবলিক/প্রাইভেট কি জোড়া দিয়ে স্বাক্ষর করে।
  2. টোকেনের প্রবাহ:
  • ব্যবহারকারী লগইন করলে, সার্ভার একটি JWT তৈরি করে এবং ক্লায়েন্টকে পাঠায়।
  • ক্লায়েন্ট এই টোকেনটি সংরক্ষণ করে (সাধারণত লোকাল স্টোরেজ বা কুকিজে) এবং পরবর্তী অনুরোধে এটি Authorization হেডারে অন্তর্ভুক্ত করে (Authorization: Bearer <token> আকারে)।
  • সার্ভার প্রতিটি অনুরোধের সময় টোকেনটি যাচাই করে, স্বাক্ষর এবং দাবিগুলি পরীক্ষা করে এবং টোকেনের ভিত্তিতে ব্যবহারকারীর অ্যাক্সেস অনুমতি দেয়।
  1. Stateless: JWT প্রমাণীকরণ স্টেটলেস, অর্থাৎ সার্ভারকে ব্যবহারকারীর সেশন ডেটা সংরক্ষণ করতে হয় না। টোকেনটি নিজেই সার্ভারকে ব্যবহারকারী যাচাই করার জন্য প্রয়োজনীয় সমস্ত তথ্য বহন করে।

উদাহরণ:

  • লগইন প্রবাহ:
  • ব্যবহারকারী লগইন করার জন্য প্রমাণপত্র প্রদান করে।
  • প্রমাণপত্র সঠিক হলে, সার্ভার একটি JWT তৈরি করে এবং ক্লায়েন্টকে পাঠায়।
  • ক্লায়েন্ট টোকেনটি পরবর্তী অনুরোধে ব্যবহার করে সুরক্ষিত রিসোর্স অ্যাক্সেস করতে।
  • টোকেন উদাহরণ:
JSON
   eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
   
   eyJ1c2VyX2lkIjoxMjM0NTY3ODkwLCJ1c2VybmFtZSI6ImplZGkiLCJleHAiOjE1MTYyMzkwMjJ9
   
   SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

JWT-এর সুবিধা:

  • Stateless: সার্ভারের উপর লোড কমে যায় কারণ সার্ভারকে ব্যবহারকারীর সেশন সংরক্ষণ করতে হয় না।
  • কমপ্যাক্ট: JWT গুলি ছোট এবং সহজেই HTTP হেডারে প্রেরণ করা যায়, যা মোবাইল অ্যাপ্লিকেশনের জন্য উপযোগী।
  • Self-contained: এটি ব্যবহারকারীর সম্পর্কে প্রয়োজনীয় সমস্ত তথ্য বহন করে, যার ফলে বারবার ডেটাবেস অনুসন্ধানের প্রয়োজন হয় না।

অসুবিধা:

  • টোকেনের মেয়াদ শেষ হওয়া: JWT অনেক সময় ধরে বৈধ থাকে, তাই এটি সঠিকভাবে পরিচালনা করতে হয় যাতে নিরাপত্তার ঝুঁকি এড়ানো যায়।
  • বিল্ট-ইন রিভোকেশন নেই: একবার টোকেন ইস্যু হয়ে গেলে, এটি বাতিল করা কঠিন, যদি না অতিরিক্ত ব্যবস্থা (যেমন ব্ল্যাকলিস্ট) না নেওয়া হয়।

JWT ওয়েব অ্যাপ্লিকেশন, মোবাইল অ্যাপ এবং API-তে নিরাপদ, স্কেলেবল, এবং স্টেটলেস ব্যবহারকারী প্রমাণীকরণের জন্য ব্যাপকভাবে ব্যবহৃত হয়।

©2025 Linux Bangla | Developed & Maintaind by Linux Bangla.