इनबॉक्समधील गोंधळ टाळून पासवर्डलेस लॉगिनची चाचणी घ्या

डेमोमध्ये पासवर्डलेस लॉगिन सोपे वाटते. वापरकर्ता ईमेल टाकतो. एक मॅजिक लिंक येते. सेशन सुरू होते.

स्टेजिंगमध्ये, ही प्रक्रिया गोंधळलेली असू शकते. लिंक्स शेअर केलेल्या इनबॉक्समध्ये किंवा जुन्या अलिआसमध्ये (aliases) जातात. यामुळे अनावश्यक गोंधळ निर्माण होतो.

तुम्ही पासवर्डलेस ऑथेंटिकेशनला (auth) एक संपूर्ण सिस्टम म्हणून मानले पाहिजे. तुम्हाला JavaScript क्लायंट, Node.js बॅकएंड, ईमेल डिलिव्हरी आणि सेशनची चाचणी घेणे आवश्यक आहे. जर तुम्ही इनबॉक्सकडे दुर्लक्ष केले, तर तुमचे API टेस्ट पास झाले तरीही तुम्ही एक दोषपूर्ण फ्लो (flow) रिलीज करू शकता.

सामान्य त्रुटींमध्ये (failures) खालील गोष्टींचा समावेश होतो:

  • बॅकएंड पुन्हा प्रयत्न (retry) केल्यावर दोन लिंक्स पाठवते.
  • ईमेल चुकीच्या होस्टकडे (host) निर्देश करतो.
  • जुनी लिंक अपेक्षित वेळेपेक्षा जास्त काळ काम करते.
  • कुकी सेट होण्यापूर्वीच फ्रंटएंड वापरकर्त्याला साइन इन केले आहे असे दर्शवते.

प्रत्येक टेस्ट रनसाठी एक वेगळा (isolated) इनबॉक्स वापरा. यामुळे टेस्टिंग डेटा टीमच्या मेलबॉक्समध्ये जाण्यापासून रोखता येतो. टेस्ट रन वेगळे ठेवण्यासाठी स्टेजिंगसाठी डिस्पोजेबल ईमेल सर्व्हिसेसचा (disposable email services) वापर करा.

आयसोलेशनमुळे (Isolation) डीबगिंग सोपे होते. जर एखादी टेस्ट फेल झाली, तर तुम्हाला एक इनबॉक्स आणि एक युजर जर्नी दिसायला हवी. कोणता मेसेज कोणत्या बिल्डचा आहे हे तुम्हाला नक्की माहित असायला हवे.

एक चांगली टेस्ट या पायऱ्या क्रमाने तपासते:

  • खाते अस्तित्वात आहे की नाही हे न सांगता लॉगिन विनंती यशस्वी होते.
  • नेमकी एकच नवीन मॅजिक-लिंक येते.
  • लिंकचा होस्ट तुमच्या स्टेजिंग डोमेनशी जुळतो.
  • लिंक एक वैध (valid) सेशन सुरू करते.
  • तीच लिंक पुन्हा वापरण्याचा प्रयत्न केल्यास ती काम करत नाही.
  • मॅन्युअल रिफ्रेशशिवाय ॲप नेव्हिगेशन अपडेट करते.

Node.js च्या बाजूने, तुमच्या लॉग्सना (logs) एक कोरिलेशन आयडी (correlation ID) जोडा. विनंतीपासून (request) ईमेल पाठवण्यापर्यंत आणि अंतिम सेशनपर्यंत त्याचा वापर करा. ईमेल उशिरा येत असल्यास किंवा डुप्लिकेट असल्यास बग्स शोधण्यास यामुळे मदत होते.

तुमच्या सर्व टेस्ट्सची जागा ईमेल टेस्ट्सनी घेऊ नका. टोकन लॉजिक आणि सेशन नियमांसाठी वेगवान युनिट टेस्ट्स (unit tests) वापरा. प्रत्यक्ष युजर एक्सपिरियन्स (user experience) काम करतो हे सिद्ध करण्यासाठी ईमेल पाथचा वापर करा.

शिप करण्यापूर्वीची चेकलिस्ट:

  • एक लॉगिन विनंती फक्त एकच सक्रिय लिंक तयार करते.
  • स्टेजिंगमध्ये नवीन ईमेल पार्श (parse) करणे सोपे असते.
  • लिंक योग्य होस्टवर काम करते.
  • लिंक पुन्हा वापरता येत नाही.
  • लॉगआउट आणि पुन्हा लॉगिन केल्यावर एक नवीन टोकन तयार होते.

Source: https://dev.to/ryanlee91/how-to-test-passwordless-login-emails-in-javascript-without-inbox-chaos-56d0