FastAPI میں 𝗝𝗪𝗧 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻

Authentication پوچھتا ہے "آپ کون ہیں؟" Authorization پوچھتا ہے "آپ کیا کر سکتے ہیں؟"

اگر آپ سیکیورٹی کے بغیر کوئی AI پلیٹ فارم بناتے ہیں، تو کوئی بھی نجی ڈیٹا تک رسائی حاصل کر سکتا ہے۔ وہ صارف کے پروفائلز تبدیل کر سکتے ہیں یا طلباء کی پیشرفت دیکھ سکتے ہیں۔ آپ کو اپنے وسائل کی حفاظت کرنی چاہیے۔

JWT (JSON Web Token) اس کا حل ہے۔ ہر درخواست کے ساتھ پاس ورڈ بھیجنے کے بجائے، صارف ایک محفوظ ٹوکن بھیجتا ہے۔

ورک فلو (Workflow):

آپ کو یہ ٹولز استعمال کرنے چاہئیں:

پاس ورڈز کو کبھی بھی سادہ متن (plain text) میں محفوظ نہ کریں۔ اگر کوئی ہیکر آپ کا ڈیٹا بیس چرا لیتا ہے، تو اسے سب کچھ مل جائے گا۔ اس کے بجائے، ہیش (hash) محفوظ کریں۔

ایک ہیش "password123" کو بے ترتیب حروف کی ایک لمبی سٹرنگ میں تبدیل کر دیتا ہے۔ آپ ہیش کو واپس پاس ورڈ میں تبدیل نہیں کر سکتے۔ آپ صرف یہ تصدیق کرتے ہیں کہ آیا ان پٹ ہیش سے مطابقت رکھتا ہے یا نہیں۔

اسے کیسے بنائیں:

  1. رجسٹریشن (Registration) صارف یوزر نیم اور پاس ورڈ بھیجتا ہے۔ آپ پاس ورڈ کو ہیش کرتے ہیں اور اسے اپنے ڈیٹا بیس میں محفوظ کرتے ہیں۔

  2. لاگ ان (Login) صارف اپنی معلومات بھیجتا ہے۔ آپ محفوظ شدہ ہیش تلاش کرتے ہیں۔ آپ پاس ورڈ کی تصدیق کے لیے لائبریری کا استعمال کرتے ہیں۔ اگر وہ میچ ہو جائے، تو آپ ایک ٹوکن بناتے ہیں۔

  3. JWT جنریشن (JWT Generation) ایک ٹوکن میں صارف کا ڈیٹا اور ختم ہونے کا وقت (expiry time) شامل ہوتا ہے۔ آپ ایک خفیہ کلید (secret key) کے ساتھ ٹوکن پر دستخط (sign) کرتے ہیں۔ اگر کوئی صارف ڈیٹا تبدیل کرنے کی کوشش کرتا ہے، تو دستخط (signature) ناکام ہو جاتے ہیں۔

لاگ ان کا رسپانس کچھ اس طرح نظر آتا ہے: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }

اب صارف کے پاس آپ کے سسٹم کی چابی ہے۔

اگلے حصے میں، ہم سیکھیں گے کہ مخصوص راستوں (routes) کی حفاظت کرنے اور صارف کے کرداروں (user roles) کو مینیج کرنے کے لیے ان ٹوکنز کا استعمال کیسے کیا جائے۔

مراحل کا خلاصہ:

Source: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk

اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi