Test Passwordless Login Without Inbox Chaos

பாஸ்வேர்ட்லெஸ் லாகின் ஒரு டெமோவில் எளிதாகத் தோன்றும். ஒரு பயனர் மின்னஞ்சலை உள்ளிடுகிறார். ஒரு மேஜிக் லிங்க் (magic link) வருகிறது. செஷன் (session) தொடங்குகிறது.

ஸ்டேஜிங்கில் (staging), இந்தச் செயல்முறை குழப்பமடைகிறது. லிங்க்குகள் பகிரப்பட்ட இன்பாக்ஸ்களிலோ அல்லது பழைய ஏலியாஸ்களிலோ (aliases) வந்து சேர்கின்றன. இது தேவையற்ற இரைச்சலை உருவாக்குகிறது.

பாஸ்வேர்ட்லெஸ் அங்கீகாரத்தை (auth) ஒரு முழுமையான அமைப்பாக நீங்கள் கருத வேண்டும். நீங்கள் JavaScript கிளையண்ட், Node.js பேக்எண்ட், மின்னஞ்சல் விநியோகம் மற்றும் செஷன் ஆகியவற்றைச் சோதிக்க வேண்டும். உங்கள் API சோதனைகள் வெற்றி பெற்றாலும், இன்பாக்ஸைத் தவிர்த்தால், ஒரு பழுதான செயல்முறையை நீங்கள் வெளியிடும் வாய்ப்பு உள்ளது.

பொதுவான தோல்விகள்:

  • மீண்டும் முயற்சி செய்த பிறகு பேக்எண்ட் இரண்டு லிங்க்குகளை அனுப்புகிறது.
  • மின்னஞ்சல் தவறான ஹோஸ்டிற்கு (host) வழிநடத்துகிறது.
  • ஒரு பழைய லிங்க் இருக்க வேண்டிய காலத்தை விட அதிக நேரம் செயல்படுகிறது.
  • குக்கீ (cookie) அமைவதற்கு முன்பே பிரண்ட்எண்ட் பயனரை லாகின் செய்தவராகக் குறிக்கிறது.

ஒவ்வொரு சோதனை ஓட்டத்திற்கும் (test run) ஒரு தனிமைப்படுத்தப்பட்ட இன்பாக்ஸைப் பயன்படுத்தவும். இது சோதனைத் தரவுகள் குழுவின் மின்னஞ்சல் பெட்டிகளுக்குள் கசியாமல் தடுக்கிறது. சோதனைகளைத் தனித்தனியாக வைத்திருக்க ஸ்டேஜிங்கிற்கு டிஸ்போசபிள் (disposable) மின்னஞ்சல் சேவைகளைப் பயன்படுத்தவும்.

தனிமைப்படுத்துதல் பிழைத்திருத்தத்தை (debugging) எளிதாக்குகிறது. ஒரு சோதனை தோல்வியடைந்தால், நீங்கள் ஒரு இன்பாக்ஸையும் ஒரு பயனர் பயணத்தையும் (user journey) மட்டுமே பார்க்க வேண்டும். எந்தச் செய்தி எந்த பில்டிற்கு (build) உரியது என்பதை நீங்கள் துல்லியமாகத் தெரிந்து கொள்ள வேண்டும்.

ஒரு சிறந்த சோதனை இந்த நிலைகளை வரிசையாகச் சோதிக்கிறது:

  • கணக்கு உள்ளதா என்பதைக் காட்டாமல் லாகின் கோரிக்கை வெற்றிகரமாகிறது.
  • சரியாக ஒரு புதிய மேஜிக்-லிங்க் வருகிறது.
  • லிங்க் ஹோஸ்ட் உங்கள் ஸ்டேஜிங் டொமைனுடன் (staging domain) ஒத்துப்போகிறது.
  • லிங்க் ஒரு செல்லுபடியாகும் செஷனைத் தொடங்குகிறது.
  • அதே லிங்க்கை மீண்டும் பயன்படுத்துவது தோல்வியடைகிறது.
  • மேனுவல் ரீப்ரெஷ் (manual refresh) இல்லாமலேயே ஆப் நேவிகேஷனைப் புதுப்பிக்கிறது.

Node.js பக்கத்தில், உங்கள் லாக்ஸுடன் (logs) ஒரு கோரிலேஷன் ஐடியை (correlation ID) இணைக்கவும். கோரிக்கை (request) முதல் மின்னஞ்சல் அனுப்புதல் மற்றும் இறுதி செஷன் வரை இதைப் பயன்படுத்தவும். மின்னஞ்சல்கள் தாமதமாகும்போதோ அல்லது நகல் (duplicate) செய்யப்படும்போதோ பிழைகளைக் கண்டறிய இது உங்களுக்கு உதவும்.

உங்கள் அனைத்து சோதனைகளையும் மின்னஞ்சல் சோதனைகளால் மாற்ற வேண்டாம். டோக்கன் லாஜிக் (token logic) மற்றும் செஷன் விதிகளுக்கு வேகமான யூனிட் டெஸ்ட்களைப் (unit tests) பயன்படுத்தவும். உண்மையான பயனர் அனுபவம் சரியாகச் செயல்படுவதை நிரூபிக்க மின்னஞ்சல் பாதையைப் பயன்படுத்தவும்.

வெளியிடுவதற்கு முன் சரிபார்க்க வேண்டியவை (Checklist):

  • ஒரு லாகின் கோரிக்கை ஒரு செயல்பாட்டு லிங்க்கை மட்டுமே உருவாக்குகிறது.
  • ஸ்டேஜிங்கில் புதிய மின்னஞ்சலை எளிதாகப் பகுப்பாய்வு (parse) செய்ய முடிகிறது.
  • லிங்க் சரியான ஹோஸ்டில் செயல்படுகிறது.
  • லிங்க்கை மீண்டும் பயன்படுத்த முடியாது.
  • லாக்அவுட் செய்து மீண்டும் லாகின் செய்வது ஒரு புதிய டோக்கனை உருவாக்குகிறது.

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