ইনবক্সের বিশৃঙ্খলা ছাড়াই পাসওয়ার্ডহীন লগইন পরীক্ষা করুন
একটি ডেমোতে পাসওয়ার্ডহীন লগইন খুব সহজ মনে হয়। একজন ব্যবহারকারী একটি ইমেল প্রদান করেন। একটি ম্যাজিক লিঙ্ক আসে। সেশন শুরু হয়।
স্টেজিং (staging) পরিবেশে এই ফ্লোটি অগোছালো হয়ে পড়ে। লিঙ্কগুলো শেয়ারড ইনবক্স বা পুরনো অ্যালিয়াসে চলে যায়। এটি অপ্রয়োজনীয় বিশৃঙ্খলা তৈরি করে।
আপনাকে পাসওয়ার্ডহীন অথেন্টিকেশনকে একটি পূর্ণাঙ্গ সিস্টেম হিসেবে বিবেচনা করতে হবে। আপনাকে JavaScript ক্লায়েন্ট, Node.js ব্যাকএন্ড, ইমেল ডেলিভারি এবং সেশন পরীক্ষা করতে হবে। আপনি যদি ইনবক্স পরীক্ষা না করেন, তবে আপনার API টেস্ট সফল হলেও আপনি একটি ত্রুটিপূর্ণ ফ্লো রিলিজ করে দিতে পারেন।
সাধারণ কিছু ব্যর্থতা হলো:
- রিট্রাই করার পর ব্যাকএন্ড দুটি লিঙ্ক পাঠিয়ে দেয়।
- ইমেলটি ভুল হোস্টে নির্দেশ করে।
- একটি পুরনো লিঙ্ক প্রত্যাশার চেয়ে বেশি সময় ধরে কাজ করে।
- কুকি সেট হওয়ার আগেই ফ্রন্টএন্ড ব্যবহারকারীকে সাইন-ইন করা হিসেবে চিহ্নিত করে।
প্রতিটি টেস্ট রানের জন্য একটি আলাদা (isolated) ইনবক্স ব্যবহার করুন। এটি টেস্টিং ডেটা টিমের মেইলবক্সে ছড়িয়ে পড়া রোধ করে। রানগুলোকে আলাদা রাখতে স্টেজিংয়ের জন্য ডিসপোজেবল ইমেল সার্ভিস ব্যবহার করুন।
আইসোলেশন ডিবাগিং সহজ করে তোলে। যদি কোনো টেস্ট ব্যর্থ হয়, তবে আপনি একটি ইনবক্স এবং একটি ইউজার জার্নি দেখতে পাবেন। কোন মেসেজটি কোন বিল্ডের তা আপনি স্পষ্টভাবে জানতে পারবেন।
একটি ভালো টেস্ট এই ধাপগুলো ক্রমানুসারে পরীক্ষা করে:
- অ্যাকাউন্ট আছে কি না তা প্রকাশ না করেই লগইন রিকোয়েস্ট সফল হয়।
- ঠিক একটি নতুন ম্যাজিক-লিঙ্ক আসে।
- লিঙ্কের হোস্ট আপনার স্টেজিং ডোমেইনের সাথে মিলে যায়।
- লিঙ্কটি একটি বৈধ সেশন শুরু করে।
- একই লিঙ্ক পুনরায় ব্যবহার করলে ব্যর্থ হয়।
- ম্যানুয়াল রিফ্রেশ ছাড়াই অ্যাপটি নেভিগেশন আপডেট করে।
Node.js সাইডে, আপনার লগগুলোতে একটি correlation ID যুক্ত করুন। রিকোয়েস্ট থেকে শুরু করে ইমেল পাঠানো এবং শেষ সেশন পর্যন্ত এটি ব্যবহার করুন। ইমেল আসতে দেরি হলে বা ডুপ্লিকেট হলে এটি বাগ খুঁজে পেতে সাহায্য করে।
আপনার সব টেস্টকে ইমেল টেস্ট দিয়ে প্রতিস্থাপন করবেন না। টোকেন লজিক এবং সেশন রুলের জন্য দ্রুত ইউনিট টেস্ট ব্যবহার করুন। প্রকৃত ইউজার এক্সপেরিয়েন্স কাজ করছে কি না তা প্রমাণ করতে ইমেল পাথ ব্যবহার করুন।
রিলিজ করার আগে চেকলিস্ট:
- একটি লগইন রিকোয়েস্ট কেবল একটি সক্রিয় লিঙ্ক তৈরি করে।
- স্টেজিংয়ে নতুনতম ইমেলটি সহজে পার্স (parse) করা যায়।
- লিঙ্কটি সঠিক হোস্টে কাজ করে।
- লিঙ্কটি পুনরায় ব্যবহার করা যায় না।
- লগআউট এবং পুনরায় লগইন করলে একটি পরিষ্কার নতুন টোকেন তৈরি হয়।
