ઇનબોક્સની અરાજકતા વગર પાસવર્ડલેસ લોગિનનું પરીક્ષણ કરો
ડેમોમાં પાસવર્ડલેસ લોગિન સરળ લાગે છે. વપરાશકર્તા ઈમેલ દાખલ કરે છે. એક મેજિક લિંક આવે છે. સત્ર (session) શરૂ થાય છે.
સ્ટેજિંગમાં, આ પ્રક્રિયા અસ્તવ્યસ્ત બની જાય છે. લિંક્સ શેર કરેલા ઇનબોક્સ અથવા જૂના એલિયાસ (aliases) માં પહોંચી જાય છે. આનાથી અરાજકતા ઊભી થાય છે.
તમારે પાસવર્ડલેસ ઓથેન્ટિકેશન (auth) ને એક સંપૂર્ણ સિસ્ટમ તરીકે ગણવું જોઈએ. તમારે JavaScript ક્લાયન્ટ, Node.js બેકએન્ડ, ઈમેલ ડિલિવરી અને સત્રનું પરીક્ષણ કરવાની જરૂર છે. જો તમે ઇનબોક્સને અવગણશો, તો તમારા API ટેસ્ટ પાસ થાય તો પણ તમે ખામીયુક્ત ફ્લો (flow) લોન્ચ કરી શકો છો.
સામાન્ય નિષ્ફળતાઓ આ મુજબ છે:
- રીટ્રાય પછી બેકએન્ડ બે લિંક મોકલે છે.
- ઈમેલ ખોટા હોસ્ટ તરફ નિર્દેશ કરે છે.
- જૂની લિંક તેના નિર્ધારિત સમય કરતાં વધુ સમય સુધી કામ કરે છે.
- કૂકી સેટ થાય તે પહેલાં ફ્રન્ટએન્ડ વપરાશકર્તાને સાઇન-ઇન તરીકે માર્ક કરે છે.
દરેક ટેસ્ટ રન માટે એક અલગ (isolated) ઇનબોક્સનો ઉપયોગ કરો. આ ટેસ્ટિંગ ડેટાને ટીમ મેઇલબોક્સમાં લીક થતો અટકાવે છે. રન અલગ રાખવા માટે સ્ટેજિંગમાં ડિસ્પોઝેબલ ઈમેલ સેવાઓનો ઉપયોગ કરો.
આઇસોલેશન (Isolation) થી ડિબગિંગ સરળ બને છે. જો ટેસ્ટ નિષ્ફળ જાય, તો તમારે એક ઇનબોક્સ અને એક યુઝર જર્ની દેખાવી જોઈએ. તમને ચોક્કસ ખબર હોવી જોઈએ કે કયો મેસેજ કયા બિલ્ડનો છે.
એક સારો ટેસ્ટ આ સ્ટેપ્સને ક્રમમાં તપાસે છે:
- એકાઉન્ટ અસ્તિત્વ ધરાવે છે કે નહીં તે જાહેર કર્યા વિના લોગિન રિક્વેસ્ટ સફળ થાય છે.
- બરાબર એક નવી મેજિક-લિંક આવે છે.
- લિંક હોસ્ટ તમારા સ્ટેજિંગ ડોમેન સાથે મેળ ખાય છે.
- લિંક એક માન્ય સત્ર શરૂ કરે છે.
- સમાન લિંકનો ફરીથી ઉપયોગ કરવાથી નિષ્ફળતા મળે છે.
- એપ મેન્યુઅલ રિફ્રેશ વગર નેવિગેશન અપડેટ કરે છે.
Node.js બાજુએ, તમારા લોગ્સ સાથે કોરિલેશન ID (correlation ID) જોડો. રિક્વેસ્ટથી લઈને ઈમેલ મોકલવા અને અંતિમ સત્ર સુધી તેનો ઉપયોગ કરો. જ્યારે ઈમેલ મોડું આવે અથવા ડુપ્લીકેટ થાય ત્યારે આ તમને બગ્સ શોધવામાં મદદ કરે છે.
તમારા બધા ટેસ્ટને ઈમેલ ટેસ્ટ સાથે બદલી નાખો. ટોકન લોજિક અને સત્રના નિયમો માટે ઝડપી યુનિટ ટેસ્ટનો ઉપયોગ કરો. વાસ્તવિક યુઝર અનુભવ કામ કરે છે તે સાબિત કરવા માટે ઈમેલ પાથનો ઉપયોગ કરો.
લોન્ચ કરતા પહેલા ચેકલિસ્ટ:
- એક લોગિન રિક્વેસ્ટ માત્ર એક જ સક્રિય લિંક બનાવે છે.
- સ્ટેજિંગમાં સૌથી નવો ઈમેલ પાર્સ (parse) કરવો સરળ છે.
- લિંક સાચા હોસ્ટ પર કામ કરે છે.
- લિંકનો ફરીથી ઉપયોગ કરી શકાતો નથી.
- લોગઆઉટ અને ફરીથી લોગિન કરવાથી એક નવો ક્લીન ટોકન બને છે.
