প্রকাশিত: ১৩ আগস্ট, ২০২৬
ক্রোম ১৫০-এ ইমেল ভেরিফিকেশন অরিজিন ট্রায়াল শুরু হয়েছে। আপনাদের মতামতের ভিত্তিতে, আমরা বেশ কিছু সংশোধন ও উন্নতি করেছি। এই পোস্টে পরিবর্তনগুলোর একটি সংক্ষিপ্ত বিবরণ এবং আপনার সাইট বা পরিষেবার জন্য করণীয় পদক্ষেপগুলো তুলে ধরা হয়েছে।
প্রথমে, ইমেল যাচাইকরণ কার্যকারিতা সম্পর্কে সংক্ষেপে আলোচনা করা যাক (অথবা আরও বিস্তারিত জানতে পূর্ববর্তী ঘোষণাটি দেখুন)। সাইটগুলিতে একটি সাধারণ রীতি হলো, ব্যবহারকারী সাইন-আপ, সাইন-ইন, অ্যাকাউন্ট পুনরুদ্ধার এবং অন্যান্য প্রক্রিয়ার অংশ হিসাবে একটি ইমেল ঠিকানা প্রবেশ করান এবং তারপরে একটি বিশেষ লিঙ্কে ক্লিক করতে বা একটি OTP পেতে তাদের ইমেলে যেতে হয়। ইমেল যাচাইকরণ এই পদ্ধতির একটি উন্নত সংস্করণ, যা সরাসরি ব্রাউজারে প্রদানকারীর কাছে ইমেল ঠিকানাটি যাচাই করে। এরপর সাইটটি ব্রাউজার থেকে একটি টোকেন পায়, যা সে ইমেল প্রদানকারীর কাছে যাচাই করে সেই ইমেলটি পাঠানো পুরোপুরি বাদ দিতে পারে।
ব্যবহারকারী-মুখী আপডেট
ব্যবহারকারী ইন্টারফেস বা ব্যবহারকারীর সামনে প্রদর্শিত আচরণে পরিবর্তন।
ইমেল এন্ট্রি
পূর্বে, ব্যবহারকারীদের ইমেল ঠিকানা প্রবেশ করানোর জন্য অটোকমপ্লিট বা অটোফিল ব্যবহার করতে হতো। এখন, ফিল্ডটিতে যেকোনো উপায়ে (যেমন, টাইপ করে বা পেস্ট করে) ইমেল ঠিকানা প্রবেশ করালে, ব্যবহারকারী input এলিমেন্ট থেকে বেরিয়ে যাওয়ার সাথে সাথে একটি change ইভেন্টের মতো ভেরিফিকেশন প্রক্রিয়াটি চালু হয়ে যায়। এর মানে হলো, যেকোনো ইমেল ঠিকানা প্রবেশ করালেই ইমেল ভেরিফিকেশনটি কার্যকরভাবে চালু হবে।
অগ্রগতি সূচক
আমরা ক্রোম ১৫২+ সংস্করণে যাচাইকরণ প্রক্রিয়ার জন্য একটি অগ্রগতি সূচকও পরীক্ষা করছি। যদিও যাচাইকরণ প্রক্রিয়াটি দ্রুত, তবুও প্রক্রিয়াটি সম্পূর্ণ হওয়ার আগেই কোনো ব্যবহারকারীর পক্ষে ফর্মটি জমা দিয়ে দেওয়া সম্ভব। অগ্রগতি সূচকটি যাচাই করার সময় একটি স্পিনার দেখায় এবং সম্পন্ন হলে ইনপুট ফিল্ডের ইনলাইন প্রান্তে (বাম থেকে ডানে লেখা ভাষার ক্ষেত্রে ডানদিকে) একটি টিক চিহ্ন দেখায়।
এর কারণে কোনো সমস্যা হলে বা আপনি কোনো অপ্রত্যাশিত আচরণ লক্ষ্য করলে, একটি বাগ রিপোর্ট করুন ।
শুধুমাত্র ডেস্কটপের জন্য
ইমেল যাচাইকরণ শুধুমাত্র ক্রোম ১৫২ পর্যন্ত ডেস্কটপে উপলব্ধ। আমরা অ্যান্ড্রয়েডেও এর সমর্থনের বিষয়টি সক্রিয়ভাবে খতিয়ে দেখছি এবং ভবিষ্যতে এখানে আপডেট জানাব।
যাচাইকারীর আপডেট
ইমেল সংগ্রহ ও যাচাইকারী সাইটগুলোর জন্য পরিবর্তন।
টোকেন যাচাইকরণ
ইমেল যাচাইকরণ টোকেনটি সিলেক্টিভ ডিসক্লোজার ফর জেএসওএন ওয়েব টোকেনস (SD-JWT) ফরম্যাটে প্রদান করা হয়। এর মূল রূপটি দেখতে এইরকম: একটি ইস্যুকারী-স্বাক্ষরিত JWT, তারপরে শূন্য বা তার বেশি ডিসক্লোজার এবং শেষে একটি কী বাইন্ডিং JWT, যেখানে প্রতিটি উপাদান একটি টিল্ড (~) চিহ্ন দ্বারা পৃথক করা থাকে।
<Issuer-signed JWT>~<Disclosure.1>~<Disclosure.2>~...~<Disclosure.N>~<Key Binding JWT>
ইমেল ভেরিফিকেশন টোকেনটি তার বর্তমান রূপে, কোনো ডিসক্লোজার অন্তর্ভুক্ত না করেই শুধুমাত্র ইস্যুকারী-স্বাক্ষরিত JWT এবং কী বাইন্ডিং JWT ফেরত দেয়। মূল ব্লগ পোস্ট এবং ডেমোর প্রথম সংস্করণটি কেবল টোকেনটিকে দুটি ভাগে বিভক্ত করে দুটি JWT পার্স করছিল। এই ব্যবস্থাটি ভঙ্গুর এবং ভবিষ্যতে যদি বাছাই করা ডিসক্লোজার যোগ করা হয়, তবে এটি ভেঙে পড়বে।
বর্তমান প্রস্তাবনার এই বৈশিষ্ট্যের উপর নির্ভর না করে, আপনার প্ল্যাটফর্মের জন্য লাইব্রেরি ব্যবহার করে নিশ্চিত করা উচিত যে আপনার ইমপ্লিমেন্টেশনটি এর স্পেসিফিকেশন অনুযায়ী SD-JWT টোকেনটি সঠিকভাবে পার্স করছে। উদাহরণস্বরূপ, ডেমো ভেরিফিকেশন কোডটি এখন টোকেন পার্স করতে এবং কী বাইন্ডিং (অডিয়েন্স, ননস, এবং হ্যাশ) ভ্যালিডেট করতে @sd-jwt/core ব্যবহার করে এবং তারপর ইস্যুকারীর EVT ও ব্রাউজারের কী বাইন্ডিং JWT-এর সিগনেচার ভেরিফাই করতে jose ।
তৃতীয় পক্ষের উৎস পরীক্ষা
আগস্ট মাস থেকে ইমেল যাচাইকরণের জন্য থার্ড-পার্টি অরিজিন ট্রায়াল সমর্থিত নয়। থার্ড-পার্টি অরিজিন ট্রায়াল একটি থার্ড-পার্টি অরিজিনকে এমন একটি সাইটে ট্রায়াল কার্যকারিতা চালু করার অনুমতি দেয় যেখানে এটি অন্তর্ভুক্ত থাকে, উদাহরণস্বরূপ, একটি ক্রস-অরিজিন জাভাস্ক্রিপ্ট নির্ভরতা হিসেবে। যদি এটি আপনার ব্যবহারের ক্ষেত্রে একটি অগ্রাধিকার হয়, তাহলে ট্র্যাকিং বাগটিতে মন্তব্য করুন বা অনুসরণ করুন।
কেস-ইনসেনসিটিভ ইমেল তুলনা
মনে রাখবেন যে, ইমেল প্রোভাইডাররা ক্যানোনিকাল ইমেল অ্যাড্রেসটি বড় হাতের অক্ষরে ফেরত দিতে পারে, যেমন, Demo.User@example.com , এমনকি যদি ফর্মে demo.user@example.com দেওয়া হয়ে থাকে। নিশ্চিত করুন যে আপনি প্রাপ্ত ইমেল অ্যাড্রেসটির সাথে কেস-ইনসেনসিটিভ তুলনা করছেন। আমরা সেটিংস পেজের একটি বাগও ঠিক করেছি, যেখানে আপনি একই ইমেল অ্যাড্রেসের কেস-সেনসিটিভ সংস্করণ তালিকাভুক্ত দেখতে পেতেন।
প্রদানকারীর আপডেট
ইমেল পরিষেবা প্রদানকারীদের জন্য পরিবর্তন।
ইস্যু করার অনুরোধের জন্য HTTP বার্তা স্বাক্ষর
আমরা Chrome 153-এ একটি বড় ধরনের পরিবর্তন আনছি, যেখানে ইস্যুয়েন্স রিকোয়েস্টটি শুধুমাত্র application/json ফরম্যাটে HTTP মেসেজ সিগনেচার সহ email পাঠাবে।
- ক্রোম ১৫২ (এবং পূর্ববর্তী সংস্করণ): ইস্যুয়েন্স এন্ডপয়েন্টটি বডিতে
request_tokenসহ একটিapplication/x-www-form-urlencodedPOSTরিকোয়েস্ট গ্রহণ করে। - ক্রোম ১৫৩ (এবং তার পরবর্তী সংস্করণ): কন্টেন্ট টাইপ পরিবর্তিত হয়ে
application/jsonহয় এবং এতেSignature,Signature-Input, ওSignature-Keyহেডারগুলো যুক্ত থাকে, আর বডিতে শুধুমাত্রemailকী-টি থাকে।
আপনার বর্তমান ট্র্যাফিকের মাত্রা এবং পরীক্ষার লক্ষ্যের উপর নির্ভর করে, আপনি নিম্নলিখিত দুটি বিকল্পের মধ্যে যেকোনো একটি বেছে নিতে পারেন:
- উভয় ফরম্যাট সমর্থন করুন এবং কন্টেন্টের ধরনের ওপর ভিত্তি করে পরিবর্তন করুন। আগস্ট মাসের শেষে ক্রোম ১৫৩ স্টেবল (Stable) সংস্করণে পৌঁছালে, আপনি পুরোনো কার্যকারিতাটি সরিয়ে ফেলার জন্য আপনার ট্র্যাফিক মূল্যায়ন করতে পারবেন।
- নতুন ফরম্যাটে পরিবর্তন করার ফলে ক্রোমের আগের সংস্করণ ব্যবহারকারীদের জন্য যাচাইকরণ ব্যর্থ হবে।
ডেমো কোডের ইস্যুয়েন্স এন্ডপয়েন্টটি structured-headers এবং http-message-sig উভয় ফ্লো পরিচালনা করার জন্য আপডেট করা হয়েছে।
সম্পূর্ণ অনুরোধের ফরম্যাট:
POST /email-verification/issuance HTTP/1.1
Host: provider.example
Accept: application/json
Content-Digest: sha-256=:aBc123aBc123aBc123aBc123aBc123=:
Content-Type: application/json
Signature: sig=:+dEf567dEf567/dEf567dEf567dEf567/dEf567==:
Signature-Input: sig=("@method" "@authority" "@path" "content-digest" "signature-key");created=1786455840
Signature-Key: sig=hwk;crv="Ed25519";kty="OKP";x="gHi890_gHi890_gHi890"
{email: "demo@example.com"}
প্রতিক্রিয়ার ফরম্যাট একই থাকে: application/json বডির মধ্যে একটি issuance_token ।
আপনি WICG/email-verification এবং dickhardt/email-verification প্রস্তাবনা রিপোজিটরিগুলোতে পড়তে এবং অতিরিক্ত মতামত জানাতে পারেন। এখন পর্যন্ত কমিউনিটির প্রতিক্রিয়া অত্যন্ত সহায়ক, তাই আপনি আপডেট এবং উন্নতি অব্যাহত থাকার আশা করতে পারেন।