ٹولز تلاش کریں

ٹولز کی تیز تلاش

JWT بنائیں

JWT ٹوکنز بنائیں اور دستخط کریں، متعدد دستخط الگورتھمز کی حمایت کرتا ہے۔

خالی چھوڑیں تاکہ پے لوڈ میں exp ویلیو استعمال ہو

JWT کیا ہے؟
JWT (JSON Web Token) ایک کھلا معیار ہے (RFC 7519)، جو معلومات کو محفوظ طریقے سے منتقل کرنے کا ایک مختصر اور خود مشتمل طریقہ بیان کرتا ہے۔ اس معلومات کو تصدیق اور بھروسہ کیا جا سکتا ہے کیونکہ یہ ڈیجیٹل دستخط شدہ ہے۔
JWT کی ساخت
JWT تین حصوں پر مشتمل ہوتا ہے، جو نقطہ (.) سے جدا ہوتے ہیں: ہیڈر (Header)، پے لوڈ (Payload) اور دستخط (Signature)۔ ہیڈر دستخط الگورتھم کی وضاحت کرتا ہے، پے لوڈ میں دعوے شامل ہوتے ہیں، اور دستخط پیغام کو تصدیق کرنے کے لیے استعمال ہوتا ہے کہ اس میں کوئی تبدیلی نہیں کی گئی۔
JWT کے عام استعمال کے مناظر
تصدیق (سب سے عام منظر)، معلومات کا تبادلہ (JWT معلومات کو محفوظ طریقے سے منتقل کر سکتا ہے، کیونکہ ان پر دستخط ہوتے ہیں)، اجازت (صارف کی اجازت کی معلومات شامل ہوتی ہیں) اور سنگل سائن آن کا نفاذ۔
دستخط الگورتھم کی اقسام
JWT متعدد دستخط الگورتھمز کی حمایت کرتا ہے، جو بنیادی طور پر دو اقسام میں تقسیم ہوتے ہیں: HMAC پر مبنی سیمیٹرک الگورتھمز (جیسے HS256) اور RSA/ECDSA پر مبنی غیر سیمیٹرک الگورتھمز (جیسے RS256، ES256)۔ سیمیٹرک الگورتھمز ایک ہی خفیہ کلید کا استعمال کرتے ہیں دستخط اور تصدیق کے لیے، غیر سیمیٹرک الگورتھمز پرائیویٹ کلید سے دستخط کرتے ہیں اور پبلک کلید سے تصدیق کرتے ہیں۔
سیکورٹی کے نکات
JWT میں حساس معلومات (جیسے پاسورڈز) محفوظ نہ کریں، کیونکہ JWT کا پے لوڈ حصہ صرف Base64 کوڈڈ ہوتا ہے، خفیہ نہیں ہوتا۔ اعلیٰ سیکورٹی کی ضرورت والے ایپلی کیشنز کے لیے، کم وقت کے لیے اختتامی وقت استعمال کرنے اور ٹوکن روٹیشن کی حکمت عملی نافذ کرنے کی سفارش کی جاتی ہے۔
JWT کے اختتام کے بعد کیسے نمٹا جائے؟
جب JWT کا وقت ختم ہو جاتا ہے، سرور اس ٹوکن کو مسترد کر دے گا۔ سفارش کردہ طریقہ یہ ہے کہ ریفریش ٹوکن (Refresh Token) کا نظام نافذ کیا جائے، جس میں کلائنٹ ریفریش ٹوکن کا استعمال کرتے ہوئے نیا رسائی ٹوکن حاصل کرتا ہے، بغیر صارف سے دوبارہ لاگ ان کرنے کی ضرورت کے۔ ریفریش ٹوکنز عام طور پر زیادہ لمبے وقت کے لیے ہوتے ہیں، لیکن ان کو محتاط طریقے سے محفوظ کرنا چاہیے۔
JWT کو منسوخ کیسے کریں؟
سخت الفاظ میں، JWT کو بے حالت ٹوکن کے طور پر ڈیزائن کیا گیا ہے، جسے حقیقت میں منسوخ نہیں کیا جا سکتا۔ لیکن کچھ عام حل موجود ہیں: منسوخ شدہ ٹوکنز کی بلیک لسٹ کو برقرار رکھنا (جو JWT کے بے حالت ہونے کے فائدے کو ختم کر سکتا ہے)، کم وقت کے لیے اختتامی وقت کا استعمال کرتے ہوئے ریفریش ٹوکنز کے ساتھ، یا ٹوکن میں ورژن کی شناخت شامل کرنا، جس سے سرور پرانے ورژن کو مسترد کر سکتا ہے۔
JWT اور سیشن میں کیا فرق ہے؟
JWT ایک خود مشتمل ٹوکن ہے، جس میں تمام ضروری معلومات شامل ہوتی ہیں، جو تقسیم شدہ نظاموں کے لیے موزوں ہے، سرور پر سیشن کی حالت کو محفوظ کرنے کی ضرورت نہیں ہوتی۔ سیشن سرور سائیڈ اسٹوریج پر مبنی ہوتا ہے، جس میں سیشن کی حالت کو برقرار رکھنے کی ضرورت ہوتی ہے، جو سنگل سرور آرکیٹیکچر کے لیے زیادہ موزوں ہوتا ہے۔ JWT توسیع کے لیے زیادہ دوستانہ ہے، لیکن منسوخ کرنا پیچیدہ ہے؛ سیشن کو منسوخ کرنا آسان ہے، لیکن توسیع پذیری کم ہوتی ہے۔