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

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

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

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

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

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

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

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

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

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

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

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

ডেভেলপমেন্টের কাজ এগিয়ে যাওয়ার সাথে সাথে আরও আপডেটের জন্য এখানে ব্লগে এবং evp-announce@chromium.org মেলিং লিস্টে নজর রাখুন।

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

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

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

ইমেল যাচাইকরণ 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. ডিসকভারি ও সেশন: ব্রাউজার, প্রদানকারীর অনুমোদিত ইস্যুকারীর উৎস ডিসকভার করার জন্য _email-verification.<email-domain>-এর DNS TXT রেকর্ড কোয়েরি করে, তারপর ইস্যুকারীর .well-known/web-identity কনফিগারেশন ও FedCM অ্যাকাউন্ট এন্ডপয়েন্ট ব্যবহার করে ব্যবহারকারীর কোনও অ্যাক্টিভ সেশন আছে কিনা তা চেক করে। ডোমেন EVP রেকর্ড প্রকাশ না করলে বা কোনও অ্যাক্টিভ সেশন না থাকলে, ব্রাউজার ব্যবহারকারীকে প্রম্পট না করেই যাচাইকরণ বন্ধ করে দেয়।
  4. টোকেন ইস্যু করা: ব্রাউজার .well-known/email-verification থেকে প্রদানকারীর issuance_endpoint খুঁজে পায়, একটি ক্ষণস্থায়ী কী পেয়ার তৈরি করে এবং ইস্যুকারীর ফার্স্ট-পার্টি সেশন কুকি ও টার্গেট ইমেল আইডির সাথে HTTP মেসেজ সিগনেচার (RFC 9421) ব্যবহার করে একটি HTTP POST অনুরোধ পাঠায় যাতে সাইন করা ইমেল যাচাইকরণ টোকেন (EVT) পাওয়া যায়।
  5. কী বাইন্ডিং ও জমা দেওয়া: ব্রাউজার, কী বাইন্ডিং JWT (KB-JWT)-এর মধ্যে রিলাইং পার্টির অরিজিন ও ফর্ম nonce-এর সাথে সাইন-ইন করা EVT বাইন্ড করে এবং ব্যবহারকারীকে একটি ছোট বিজ্ঞপ্তি দেখায় যে তার ইমেল পরিষেবা প্রদানকারী তার ইমেল আইডি যাচাই করেছে। ব্যবহারকারী ফর্ম জমা দিলে, 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-কে ঐচ্ছিক হিসেবে বিবেচনা করে, অনুরোধে এটি থাকলে প্রসেস করে।

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