Test Passwordless Login Without Inbox Chaos
ڈیمو میں پاس ورڈ لیس لاگ ان آسان لگتا ہے۔ صارف ای میل درج کرتا ہے، ایک میجک لنک حاصل کرتا ہے، اور لاگ ان ہو جاتا ہے۔
اسٹیجنگ (staging) میں، یہ عمل ٹوٹ جاتا ہے۔ لنکس مشترکہ ان باکسز یا پرانے ای میل ایلیئسز (aliases) میں پہنچ جاتے ہیں۔ ٹیسٹنگ ایک الجھن بن جاتی ہے۔
آپ کو پاس ورڈ لیس آتھ (auth) کو ایک مکمل سسٹم کے طور پر دیکھنا چاہیے۔ آپ کو JavaScript کلائنٹ، Node.js بیک اینڈ، ای میل ڈیلیوری، اور فائنل سیشن کا ٹیسٹ کرنے کی ضرورت ہے۔
اگر آپ ان باکس کو نظر انداز کر دیتے ہیں، تو ہو سکتا ہے کہ آپ کے API ٹیسٹ پاس ہو جائیں لیکن صارف کا تجربہ (user experience) ناکام ہو جائے۔
عام ناکامیوں میں شامل ہیں:
- ری ٹرائی (retry) کے بعد بیک اینڈ دو لنکس بھیج دیتا ہے۔
- ای میل غلط انوائرمنٹ ہوسٹ (environment host) کی طرف اشارہ کرتی ہے۔
- ایک پرانا لنک ضرورت سے زیادہ دیر تک کام کرتا ہے۔
- فرنٹ اینڈ کوکی سیٹ ہونے سے پہلے ہی صارف کو لاگ ان قرار دے دیتا ہے۔
ہر ٹیسٹ رن کے لیے ایک الگ (isolated) ان باکس استعمال کریں۔ اس سے آپ کا ڈیٹا صاف رہتا ہے اور ڈی بگنگ (debugging) تیز ہوتی ہے۔ اگر تین ٹیسٹ ایک ہی ان باکس استعمال کریں گے، تو آپ غلطی نہیں ڈھونڈ سکیں گے۔
اس ورک فلو (workflow) پر عمل کریں:
- اپنے UI یا اینڈ ٹو اینڈ (end-to-end) ٹیسٹ سے لاگ ان ٹرگر کریں۔
- Node.js کو اپنے اسٹیجنگ پاتھ کے ذریعے لنک بھیجنے دیں۔
- ایک تازہ، الگ ان باکس میں پیغام حاصل کریں۔
- اسی براؤزر سیشن میں تازہ ترین لنک کھولیں۔
- آتھنٹیکیٹڈ اسٹیٹ (authenticated state) کی تصدیق کریں۔
ایک اچھا ٹیسٹ صرف یہ چیک کرنے سے کہیں زیادہ ہوتا ہے کہ ای میل موصول ہوئی یا نہیں۔ ان مراحل کی ترتیب وار جانچ کریں:
- لاگ ان کی درخواست ایک نیوٹرل کامیابی کا جواب (neutral success response) دیتی ہے۔
- بالکل ایک تازہ میجک لنک موجود ہوتا ہے۔
- لنک کا ہوسٹ آپ کے اسٹیجنگ ڈومین سے مطابقت رکھتا ہے۔
- ٹوکن ایک درست سیشن شروع کرتا ہے۔
- اسی لنک کو دوبارہ استعمال کرنے پر ناکامی ہوتی ہے۔
- ایپ دستی ریفریش کے بغیر UI کو اپ ڈیٹ کر دیتی ہے۔
بیک اینڈ پر، اپنے لاگز (logs) کے ساتھ ایک کوریلیشن آئی ڈی (correlation ID) منسلک کریں۔ یہ آپ کو درخواست کی تخلیق سے لے کر فائنل سیشن تک ٹریک کرنے میں مدد دیتا ہے۔
اپنے تمام ٹیسٹوں کو ای میل پر مبنی ٹیسٹوں سے تبدیل نہ کریں۔ لاجک کے لیے تیز یونٹ ٹیسٹ (unit tests) استعمال کریں اور اپنی اسٹیجنگ سویٹ (staging suite) کے لیے اس ان باکس پاتھ کا استعمال کریں۔
شپ (ship) کرنے سے پہلے اس چیک لسٹ کا استعمال کریں:
- لاگ ان کی درخواست صرف ایک فعال لنک تخلیق کرتی ہے۔
- اسٹیجنگ میں تازہ ترین ای میل کو پارس (parse) کرنا آسان ہے۔
- لنک صارف کو درست ہوسٹ پر لاگ ان کرتا ہے۔
- لنک کو دو بار استعمال نہیں کیا جا سکتا ہے۔
- لاگ آؤٹ اور دوبارہ لاگ ان کرنے سے ایک نیا صاف ستھرا ٹوکن حاصل ہوتا ہے۔
