𝟱 𝗖𝗼𝗼𝗸𝗶𝗲 𝗧𝗿𝗶𝗰𝗸𝘀 𝗳𝗼𝗿 𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴 𝗔𝘂𝘁𝗵 𝗜𝘀𝘀𝘂𝗲𝘀
ویب ایپس میں آتھینٹیکیشن (authentication) کو ڈی بگ کرنا ایک سست عمل ہے۔ مختلف صارف اقسام (user types) کو ٹیسٹ کرنے کے لیے آپ اکثر نئے اکاؤنٹس بنانے یا تمام کوکیز کو صاف کرنے میں وقت ضائع کرتے ہیں۔
آپ اپنے ڈیٹا بیس کو چھیڑے بغیر کسی بھی اسٹیٹ (state) کو ٹیسٹ کر سکتے ہیں۔ کوکیز کو براہ راست مینیپولیٹ کرنے کے لیے ان پانچ تکنیکوں کا استعمال کریں۔
- سب کچھ صاف کرنے کے بجائے مخصوص کوکیز کو نشانہ بنائیں
تمام کوکیز کو صاف کرنے سے آپ کا ڈیولپمنٹ سرور سیشن، لوکل اسٹوریج، اور Stripe ٹیسٹ موڈز ختم ہو جاتے ہیں۔ اس کے بجائے، صرف آتھ (auth) کوکی کو ڈیلیٹ کریں۔
عام ناموں میں شامل ہیں:
- session
- sid
- auth_token
- _session_id
DevTools میں، Application > Cookies > [your domain] پر جائیں۔ سیشن کوکی پر رائٹ کلک کریں اور Delete منتخب کریں۔ یہ آپ کی دیگر سیٹنگز کو برقرار رکھتے ہوئے صارف کی اسٹیٹ کو لاگ آؤٹ (logged-out) پر ری سیٹ کر دیتا ہے۔
- آن بورڈنگ فلیگز (onboarding flags) کو ڈیلیٹ کر کے نئے صارفین کی نقل (simulate) کریں
ایپس یہ ٹریک کرنے کے لیے کوکیز کا استعمال کرتی ہیں کہ آیا صارف نے سیٹ اپ مکمل کر لیا ہے۔ onboarding_complete یا first_visit جیسے ناموں کو تلاش کریں۔
نئے صارف کے فلو (flow) کو ٹیسٹ کرنے کے لیے:
- اپنی موجودہ کوکیز ایکسپورٹ کریں۔
- آن بورڈنگ فلیگ کو ڈیلیٹ کریں۔
- پیج کو ری لوڈ کریں۔
یہ آپ کو نئے اکاؤنٹ کے بغیر پروگریسو UI برانچز (progressive UI branches) کو ٹیسٹ کرنے کی اجازت دیتا ہے۔
- اسنیپ شاٹس (snapshots) کا استعمال کرتے ہوئے 30 سیکنڈ میں صارف کے رولز تبدیل کریں
اگر آپ کی ایپ میں Admin یا Guest جیسے مختلف رولز ہیں، تو مینوئلی لاگ ان اور لاگ آؤٹ نہ کریں۔ کوکی اسنیپ شاٹس کا استعمال کریں۔
- Admin کے طور پر لاگ ان کریں۔ کوکیز کو
admin-session.jsonکے طور پر ایکسپورٹ کریں۔ - ایک ریگولر یوزر کے طور پر لاگ ان کریں۔ انہیں
user-session.jsonکے طور پر ایکسپورٹ کریں۔ - رولز تبدیل کرنے کے لیے، بس JSON فائل امپورٹ کریں اور ری لوڈ کریں۔
سرور سیشن ٹوکن پر بھروسہ کرتا ہے۔ آپ وہی درست سیشنز استعمال کر رہے ہیں جو آپ پہلے ہی بنا چکے ہیں۔ ان JSON فائلوں کو لوکل رکھیں۔ ان میں حساس سیشن ٹوکنز ہوتے ہیں۔
- ایکسپائرڈ سیشنز (expired sessions) کو فوری طور پر ٹیسٹ کریں
سیشن کے ختم ہونے کا گھنٹوں انتظار نہ کریں۔ ایکسپائری کی تاریخ کو مینوئلی تبدیل کریں۔
DevTools میں، اپنی سیشن کوکی کے لیے Expires کالم پر ڈبل کلک کریں۔ اسے ماضی کی کسی تاریخ پر سیٹ کریں۔ پیج کو ری لوڈ کریں۔ آپ بالکل وہی دیکھیں گے جو سیشن ٹائم آؤٹ ہونے پر ہوتا ہے۔
- لاگ ان ری ڈائریکٹ لوپس (login redirect loops) کو ٹھیک کریں
لوپس اکثر پرانی یا غلط طریقے سے بنی ہوئی (malformed) کوکی کی وجہ سے ہوتے ہیں۔ سیشن موجود ہوتا ہے لیکن سرور اسے مسترد کر دیتا ہے۔
وجہ جاننے کے لیے:
- تمام آتھ (auth) سے متعلقہ کوکیز کی شناخت کریں۔
- انہیں ایک ایک کر کے ڈیلیٹ کریں۔
- ہر ڈیلیشن کے بعد ری لوڈ کریں۔
جس لمحے لوپ رک جائے، آپ کو خراب کوکی مل جائے گی۔ یہ آپ کو یہ پہچاننے میں مدد دیتا ہے کہ مسئلہ ایک غلط ٹوکن ہے یا غلط کوکی ڈومین۔
یہ طریقے HttpOnly کوکیز کے لیے بھی کام کرتے ہیں کیونکہ DevTools اور CookieJar جیسی ایکسٹینشنز براؤزر لیول پر کام کرتی ہیں۔