ইমেল যাচাইকরণ

ইমেল যাচাইকরণ API হল একটি প্রস্তাব যা ব্রাউজারকে ইমেল প্রদানকারীর সাথে সরাসরি যোগাযোগ করতে সক্ষম করে যাতে ব্যবহারকারী ইমেল আইডির মালিক কিনা তা যাচাই করা যায়। ব্যবহারকারী তার ইমেল আইডি লিখে ফর্ম জমা দেন এবং সাইটটি ইমেল না পাঠিয়ে বা ব্যবহারকারীর ফ্লোতে বাধা না দিয়ে প্রদানকারীর সাথে ব্রাউজার থেকে সাইন-ইন করা ইমেলের যাচাইকরণ টোকেন যাচাই করে।

সাইন-আপ, সাইন-ইন, চেক-আউট, নিউজলেটার সাবস্ক্রিপশন বা অ্যাকাউন্ট ফিরিয়ে আনার সময় ইমেল আইডি সংগ্রহ করার সময়, সাইট সাধারণত নিশ্চিত করে যে, যে ব্যক্তি ফর্ম জমা দিচ্ছেন তিনি সেই ইমেল আইডির কন্ট্রোল করেন। আগে থেকে থাকা যাচাইকরণ পদ্ধতি ব্যবহারকারীদের আপনার সাইট ছেড়ে যেতে, ইনবক্স চেক করার জন্য অ্যাপ পরিবর্তন করতে, একটি ওটিপি কপি করতে, অথবা যাচাইকরণ লিঙ্কে ক্লিক করতে বলে। এই বিঘ্নতার ফলে হিউম্যান ব্যবহারকারী ও অটোমেটেড এজেন্ট, উভয়ের ক্ষেত্রেই ড্রপ-অফ ও সেশন অসম্পূর্ণ থাকার ঘটনা বেড়ে যায়। ব্যবহারকারীরা প্রায়ই বর্তমান যাচাইকরণ পদ্ধতি নিয়ে সমস্যার সম্মুখীন হন, যেমন ইমেল পেতে দেরি হওয়া, লিঙ্কের মেয়াদ শেষ হয়ে যাওয়া বা কোড শনাক্ত করতে না পারা।

ইমেল যাচাইকরণ সংক্রান্ত ব্যবহারকারীর প্রম্পটের ডেমো
ইমেল যাচাইকরণ সংক্রান্ত ব্যবহারকারীর প্রম্পটের ডেমো

ইমেল যাচাইকরণ আপনার বর্তমান ফ্লোতে একটি প্রগ্রেসিভ এনহ্যান্সমেন্ট হিসেবে কাজ করে:

  • কোনও বাধা নেই: ব্যবহারকারী ফর্ম পূরণ করার সময় ব্যাকগ্রাউন্ডে যাচাইকরণ প্রক্রিয়া চলে।
  • কোনও ফিচার শনাক্ত করার প্রয়োজন নেই: সাইটগুলি তাদের ফর্মে ইমেল ইনপুট ও লুকানো টোকেন ইনপুট যোগ করে। ব্রাউজার বা পরিষেবা প্রদানকারী ইমেল যাচাইকরণ সুবিধা না দিলে অথবা যাচাইকরণ করা না গেলে, সাইটটি ইমেল কনফার্মেশনের ডিফল্ট ফ্লোতে ফিরে যায়।
  • ফিশিংয়ের ঝুঁকি কমান: কপি করার মতো কোনও কোড নেই বা ব্যবহারকারীকে কোনও নকল সাইটে পাঠানোর সুযোগ নেই।

আপনি ডেমোতে ফ্লো পরীক্ষা করে দেখতে পারেন:

  • ইস্যুকারী ডেমো: একটি মক ইমেল অ্যাকাউন্ট ও সাইন-ইন সেশন প্রদান করে।
  • যাচাইকারী ডেমো: ডেমো ইমেল বা অংশগ্রহণকারী যেকোনও পরিষেবা প্রদানকারীর ইমেল যাচাই করুন।

অরিজিন ট্রায়াল সংক্রান্ত বিবেচনা

অরিজিন ট্রায়াল হল মতামত সংগ্রহ করার জন্য করা পরীক্ষা, তাই আপনি যদি নির্ভরশীল পার্টি বা পরিচয় প্রদানকারী হিসেবে অংশগ্রহণ করেন, তাহলে আপনার ইনপুট খুবই গুরুত্বপূর্ণ। সমস্যার ব্যাপারে অভিযোগ জানাতে, নিম্নলিখিত GitHub রিপোজিটরি ব্যবহার করুন:

Chrome প্রয়োগে কোনও বাগ দেখতে পেলে, নিচে উল্লেখ করা কম্পোনেন্টে একটি ইস্যু ফাইল করুন:

আপনি প্রতিটি উত্তরের ভিত্তিতে অরিজিন ট্রায়াল টোকেন অন্তর্ভুক্ত করে অরিজিন ট্রায়াল ফাংশনালিটি কন্ট্রোল করেন। এর ফলে, আপনি A/B টেস্টিংয়ের জন্য নির্বাচিত ব্যবহারকারীদের মতো নির্দিষ্ট কোনও সেগমেন্টের জন্য ফিচার সীমাবদ্ধ করতে পারবেন। অন্যদিকে, আপনার যদি বেটা টেস্টিং বা ব্যবহারকারীদের আর্লি প্রিভিউ গ্রুপ থাকে, তাহলে আপনি তাদের জন্য ফিচারটি চালু করতে চাইতে বা প্রয়োজন হতে পারে। এই ক্ষেত্রে, টোকেন ইস্যু বা যাচাই করার আগে, প্রদত্ত ইমেল আইডি চেক করে নিন।

এছাড়াও, লঞ্চের আগে ফিচার ব্যবহার করে এমন সাইটের সংখ্যা কমাতে অরিজিন ট্রায়ালে ট্রাফিক সীমা থাকে। ইস্যুকারী API এখনও ডেভেলপ করা হচ্ছে এবং Chrome UX-এ আপডেটের পাশাপাশি ব্যাকওয়ার্ড-ইনকম্প্যাটিবল পরিবর্তন হতে পারে।

ডেভেলপমেন্টের অগ্রগতি অনুযায়ী, এই ব্লগ এবং evp-announce@chromium.org মেইলিং লিস্টে আরও আপডেট পেতে চোখ রাখুন।

ইমেল যাচাইকরণ ফ্লো

নিচের বিভাগগুলি ইমেল যাচাইকরণ API ব্যবহার করার সময় মূল শব্দ এবং প্রোটোকল ধাপগুলি ব্যাখ্যা করে।

মুখ্য শব্দাবলী

Email Verification API-এর গুরুত্বপূর্ণ শব্দ হল:

  • যাচাইকারী: যে সাইট ইমেল আইডি সংগ্রহ করে এবং সেটি যাচাই করতে চায়। যাচাইকারীকে নির্ভরযোগ্য পার্টিও বলা হয়।
  • ইমেল পরিষেবা প্রদানকারী: ব্যবহারকারীর ইমেল আইডি প্রদানকারী পরিষেবা, যেমন gmail.com।
  • ইস্যুকারী: যে পরিষেবা ব্যবহারকারীর ইমেলের অ্যাকাউন্ট ম্যানেজ করে, যেমন accounts.google.com। ইস্যুকারীকে পরিচয় প্রদানকারীও বলা হয়।

কিছু ক্ষেত্রে, ইমেল পরিষেবা প্রদানকারী ও ইস্যুকারী একই ডোমেন থেকে কাজ করে। তবে, দু'টির মধ্যে পার্থক্য করা গুরুত্বপূর্ণ কারণ ইমেল যাচাইকরণ API, যাচাইকরণ পদ্ধতি হিসেবে পরিচয় প্রদানকারী সহ ব্রাউজারে অ্যাক্টিভ সেশন ব্যবহার করছে। যেমন, যাচাই করার জন্য example@gmail.com ব্যবহারকারীকে অবশ্যই একই ব্রাউজারে google.com সেই অ্যাকাউন্ট দিয়ে সাইন-ইন করে থাকতে হবে।

প্রোটোকল ফ্লো

ইমেল যাচাইকরণ ফ্লো আর্কিটেকচার
ইমেল যাচাইকরণ ফ্লো আর্কিটেকচার
  1. ফর্ম প্রেজেন্টেশন: রিলায়িং পার্টি একটি HTML ফর্ম পরিবেশন করে যাতে একটি <input type="email"> এবং autocomplete="email-verification-token" দিয়ে চিহ্নিত করা একটি লুকানো ইনপুট এবং একটি অনন্য পার-ইনস্ট্যান্স nonce থাকে।
  2. ইমেল এন্ট্রি: ব্যবহারকারী কোনও ইমেল আইডি লিখলে - হয় অটোফিল সাজেশন বেছে নিয়ে অথবা টাইপ বা পেস্ট করে ফিল্ড থেকে বেরিয়ে এলে (blur) - ব্রাউজার ব্যাকগ্রাউন্ডে যাচাইকরণ ট্রিগার করে।
  3. ডিসকভারি ও সেশন: প্রদানকারীর অনুমোদিত ইস্যুকারী অরিজিন ডিসকভার করতে, ব্রাউজার DNS TXT রেকর্ড কোয়েরি করে _email-verification.<email-domain>, তারপর ইস্যুকারীর .well-known/web-identity কনফিগারেশন ও FedCM অ্যাকাউন্ট এন্ডপয়েন্ট ব্যবহার করে ব্যবহারকারীর অ্যাক্টিভ সেশন আছে কিনা তা চেক করে। ডোমেন EVP রেকর্ড প্রকাশ না করলে বা কোনও অ্যাক্টিভ সেশন না থাকলে, ব্রাউজার ব্যবহারকারীকে প্রম্পট না করেই যাচাইকরণ বন্ধ করে দেয়।
  4. টোকেন ইস্যু করা: ব্রাউজার .well-known/email-verification থেকে প্রদানকারীর issuance_endpoint খুঁজে পায়, একটি ক্ষণস্থায়ী কী পেয়ার তৈরি করে এবং ইস্যুকারীর ফার্স্ট-পার্টি সেশন কুকি ও টার্গেট ইমেল আইডির সাথে HTTP মেসেজ সিগনেচার (RFC 9421) ব্যবহার করে একটি HTTP POST অনুরোধ পাঠায় যাতে সাইন করা ইমেল যাচাইকরণ টোকেন (EVT) পাওয়া যায়।
  5. কী বাইন্ডিং ও জমা দেওয়া: ব্রাউজার, কী বাইন্ডিং JWT (KB-JWT)-এর মধ্যে সাইন করা EVT-কে নির্ভরযোগ্য পার্টি অরিজিন ও ফর্ম nonce-এর সাথে বাইন্ড করে। ব্যবহারকারী ফর্ম জমা দিলে, Chrome লুকানো ইনপুটকে সম্মিলিত টোকেন (<EVT>~<KB-JWT>) দিয়ে পূরণ করে এবং একটি ছোট বিজ্ঞপ্তি দেখিয়ে ব্যবহারকারীকে জানায় যে তার ইমেল পরিষেবা প্রদানকারী তার ঠিকানা যাচাই করেছেন।
  6. দাবি ও KB যাচাই করা: নির্ভরকারী পার্টি সার্ভার <EVT>~<KB-JWT> টোকেন পার্স করে, প্রত্যাশিত দাবি (email, email_verified, aud, nonce, iat ও exp) যাচাই করে এবং cnf.jwk-এ থাকা ক্ষণস্থায়ী পাবলিক কীয়ের সাথে কী বাইন্ডিং সিগনেচার যাচাই করে।
  7. DNS ও সর্বজনীন কী: নির্ভরকারী পার্টি _email-verification.<email-domain> DNS TXT রেকর্ড কোয়েরি করে এটি কনফার্ম করে যে এটি টোকেনের iss দাবিকে ম্যাচ করছে, তারপর ইস্যুকারীর .well-known/email-verification মেটাডেটা ও সর্বজনীন কী jwks_uri থেকে নিয়ে আসে।
  8. EVT যাচাই করে সম্পূর্ণ করা: প্রদানকারীর সর্বজনীন JWKS ব্যবহার করে, নির্ভরকারী পার্টি ইস্যুকারীর EVT স্বাক্ষর যাচাই করে। কোনও টোকেন না পেলে বা কোনও যাচাইকরণ ধাপ সম্পূর্ণ না হলে, সাইটটি তার বর্তমান ইমেল কনফার্মেশন প্রসেসে ফিরে যায়।

কোনও ব্যবহারকারী প্রথমবার ইমেল আইডি যাচাই করলে, টোকেন অনুরোধ করার আগে Chrome একটি অনুমতির প্রম্পট (ডেস্কটপে একটি ডায়ালগ বা Android-এ একটি বটম শীট) দেখায়। অনুমতি দেওয়া হলে, অংশগ্রহণকারী সাইট জুড়ে প্রতিটি ইমেল আইডির জন্য এই অনুমতি মনে রাখা হয়।

Chrome সেটিংস

ব্যবহারকারীরা তাদের যাচাই করা ইমেল ম্যানেজ করতে পারবেন:

  • ডেস্কটপে, সেটিংস > অটোফিল ও পাসওয়ার্ড > পরিচিতি তথ্য > যাচাই করা ইমেল বিকল্পে যান (অথবা chrome://settings/contactInfo খুলুন)
  • Android-এ, সেটিংস > ঠিকানা ও আরও অনেক কিছু > যাচাই করা ইমেল বিকল্পের অধীনে

ব্যবহারকারী এই ফিচারটি সম্পূর্ণ বন্ধ করে দিতে পারেন অথবা আলাদা আলাদা যাচাই করা ইমেল আইডি ম্যানেজ করতে পারেন।

ব্যবহারের ক্ষেত্রে বিবেচ্য বিষয়

ইমেল যাচাইকরণ হল আপনার বর্তমান ফ্লোতে একটি প্রগ্রেসিভ এনহ্যান্সমেন্ট যা ওটিপি পেতে বা লিঙ্কে ক্লিক করার জন্য ব্যবহারকারীকে আপনার সাইট ছেড়ে যেতে হবে না। সাইটগুলি সব প্রাসঙ্গিক ফর্মে ইমেল যাচাইকরণ ফিল্ড যোগ করতে পারে, যেমন লগ-ইন, নিউজলেটার সাইন-আপ, অ্যাকাউন্ট তৈরি করা এবং পাসওয়ার্ড ফিরিয়ে আনা। ব্রাউজার কাজ করলে তবেই EVP ট্রিগার করে। জমা দেওয়ার পরে কোনও কোড না পেলে অথবা যাচাইকরণের কোনও ধাপ সম্পূর্ণ না হলে, আপনি ইমেল কনফার্মেশন ফ্লোতে ফিরে যেতে পারবেন। এর অর্থ হল, API-এর জন্য কোনও ফিচার শনাক্তকরণ নেই; যাচাইকারী সাইট EVT-কে ঐচ্ছিক হিসেবে বিবেচনা করে, অনুরোধে এটি থাকলে প্রসেস করে।

ইমেল যাচাইকরণ নিশ্চিত করে যে ব্যবহারকারীর ইমেল আইডি প্রদানকারীর সাথে একটি অ্যাক্টিভ সেশন রয়েছে। এটি যাচাই করে না যে আপনার ইমেল ব্যবহারকারীর কাছে পৌঁছেছে কিনা। আপনি হয়ত এখনও আগে থেকে থাকা স্বাগত জানানো বা অনবোর্ডিং ইমেল পাঠাতে চান এবং হয়ত ব্যবহারকারীকে স্প্যাম সেটিংস চেক করার জন্য প্রম্পট করতে চান বা প্রয়োজন হতে পারে।