অরিজিন ট্রায়ালের মাধ্যমে ইমেল যাচাইকরণ প্রোটোকল পরীক্ষা করা

প্রকাশিত: ৮ জুলাই, ২০২৬, শেষবার আপডেট করা হয়েছে: ৫ অক্টোবর, ২০২৬

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

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

Email Verification API ব্যবহারকারীর প্রম্পট ডেমো
Email Verification API ব্যবহারকারীর প্রম্পট ডেমো

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

আপনি ডেমো অ্যাকাউন্ট দিয়ে ফ্লো ব্যবহার করে দেখতে পারেন:

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

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

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

ইমেল যাচাইকরণ API-এর গুরুত্বপূর্ণ শব্দগুলি নিচে দেওয়া হল:

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

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

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

পূর্বশর্ত

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

    • ব্যবহারকারী যদি আগে ফিল্ডে কোনও ইমেল আইডি লিখে থাকেন, তাহলে সেটি অটোকমপ্লিট ফিচারের মাধ্যমে সাজেস্ট করা হবে।
    • ব্যবহারকারী Chrome সেটিংস "অটোফিল ও পাসওয়ার্ড" (chrome://settings/autofill) ব্যবহার করে তার ইমেল আইডি যোগ করে থাকলে, এটি অটোফিল ব্যবহার করে অফার করা হবে।

  • কোনও ব্যবহারকারী প্রথমবার যাচাইকরণের জন্য ইমেল আইডি দিলে, তিনি অনুমতি সংক্রান্ত প্রম্পট দেখতে পাবেন। প্রতিটি ইমেল আইডির জন্য এটি একবারই ঘটে।

ব্যবহারকারীর ব্রাউজারে অ্যাক্টিভ সেশন থাকলে, তিনি এই প্রসেস শুরু করতে পারবেন:

  1. ইমেল ফিল্ড সহ কোনও ফর্মে, ব্যবহারকারী অটোফিল ড্রপ-ডাউন থেকে তার ইমেল আইডি বেছে নেন। যাচাইকারী সাইট এই অনুরোধ যাচাই করার জন্য ফর্মের মধ্যে একটি করে ইনস্ট্যান্স ননস সহ একটি লুকানো ফিল্ড প্রদান করে।
  2. ব্রাউজারটি তারপরে ইমেল ডোমেনের জন্য ইমেল যাচাইকরণ ডিএনএস রেকর্ড রিট্রিভ করবে। এটি ব্রাউজারকে ইস্যুকারীর দিকে নির্দেশ করে। তারপরে ইস্যুকারী কনফার্ম করবেন যে সেই ইমেল আইডির জন্য তার একটি অ্যাক্টিভ সেশন আছে।

  3. তারপরে ইস্যুকারী, ঠিকানার জন্য ইমেল যাচাইকরণ টোকেন (EVT) প্রদান করবেন। ব্রাউজার EVT, সাইট অরিজিন এবং ইনপুট ফর্ম থেকে প্রাপ্ত ননসের সাথে একটি কী বাউন্ড JWT-তে সেটি একত্রিত করে।

  4. ফর্ম জমা দেওয়া হলে, EVT প্যাকেজটি লুকানো ফিল্ডে যোগ করা হয় এবং সাইটে পাঠানো হয়।

  5. যাচাইকারী সাইট তারপরে সেইসব বিবরণের প্রতিটি যাচাই করে: প্রত্যাশিত ইমেল আইডি, ননস এবং ব্রাউজার ও ইস্যুকারীর স্বাক্ষর।

  6. ব্যবহারকারী একটি ছোট বিজ্ঞপ্তি দেখতে পাবেন যেখানে তাকে জানানো হবে যে তার ইমেল পরিষেবা প্রদানকারী তার ঠিকানা যাচাই করেছেন।

এই প্রসেস যাচাইকারী সাইটকে কনফার্মেশন প্রদান করে যে ইমেল আইডিটি সঠিক এবং বর্তমান ব্যবহারকারীর, যার অর্থ হল সাইটটি যাচাইকরণ ইমেল পাঠানোর প্রক্রিয়া এড়িয়ে যেতে পারে।

ব্যবহারকারীরা সেটিংস > অটোফিল ও পাসওয়ার্ড > পরিচিতির তথ্য > যাচাই করা ইমেল বিকল্পের মধ্যে থেকে তাদের যাচাই করা ইমেল ম্যানেজ করতে পারবেন (অথবা chrome://settings/contactInfo খুলুন)।

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

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

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

যাচাইকারী সাইট প্রয়োগ করা

আরও বিস্তারিত জানতে, আপনি এন্ড-টু-এন্ড ডেমো কোড দেখতে পারেন এবং ইমেল যাচাইকরণ API ও ইমেল যাচাইকরণ প্রোটোকল প্রস্তাবে যাচাইকরণের ধাপগুলি দেখতে পারেন।

ফর্ম ফিল্ড কনফিগার করা

আপনার ফর্ম ফিল্ডে সঠিক অ্যাট্রিবিউট আছে কিনা তা নিশ্চিত করুন:

<input
  name="email-address"
  type="email"
  autocomplete="email">
<input
  type="hidden"
  name="token"
  nonce="rAnD0m-VaLuE"
  autocomplete="email-verification-token">

ইমেল আইডির জন্য ব্রাউজারকে অটোকমপ্লিট অফার করতে দিতে, email ইনপুটের type এবং autocomplete অ্যাট্রিবিউটকে email হিসেবে সেট করুন।

ফর্ম জমা দেওয়ার পরে নতুন hidden ফিল্ডে ইমেল যাচাইকরণ টোকেন অটো-ফিল হয়ে যাবে। প্রয়োজনীয় অ্যাট্রিবিউটগুলি হল:

  • type="hidden" সেট করুন কারণ এই ফিল্ডে ব্যবহারকারীর ইনপুট প্রয়োজন হয় না।
  • nonce="rAnD0m-VaLuE" সেট করুন। ফর্ম জমা দেওয়ার বিষয়টি যাচাই করতে সাইটকে অবশ্যই একটি অনন্য সেশন-বাউন্ড নন্স প্রদান করতে হবে।
  • autocomplete="email-verification-token" সেট করুন। ব্রাউজার এই অ্যাট্রিবিউট ব্যবহার করে, যে ফিল্ডে ডেটা পূরণ করতে হবে সেটি শনাক্ত করে।

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

EVT যাচাই করুন

EVT প্যাকেজের প্রতিটি কম্পোনেন্ট যাচাই করার জন্য পাঁচটি ধাপ রয়েছে।

  1. টোকেন পার্স করুন।
  2. সম্ভাব্য ভ্যালু যাচাই করুন।
  3. কী বাইন্ডিং যাচাই করুন।
  4. ডিএনএস রেকর্ড যাচাই করুন।
  5. ইস্যুকারীকে খুঁজে বের করে EVT স্বাক্ষর যাচাই করে।

১. টোকেন পার্স করা

ফর্ম জমা দেওয়ার সময় প্রাপ্ত কাঁচা ডেটাতে EVT এবং সিলেক্টিভ ডিসক্লোজার JSON ওয়েব টোকেন (SD-JWT+KB)-এ সই করা দাবি থাকে, যা টিল্ড চিহ্ন (~ ক্যারেক্টার) দিয়ে আলাদা করা হয়। আপনাকে এগুলি আলাদা করতে হবে এবং Javascript অবজেক্ট সাইনিং ও এনক্রিপশন (JOSE) হেডার ও পেলোড ডিকোড করতে হবে (যেমন, Node.js-এর জন্য jose ব্যবহার করে)।

example.com যাচাই করলে demo@gmail.com, ডিকোড করা পেলোডটি নিচের উদাহরণের মতো দেখাবে:

{
  "evtJwtDecodedPayload": {
    "cnf": {
      "jwk": {
        "crv": "Ed25519",
        "kty": "OKP",
        "x": "pUbLiCkEy123pUbLiCkEy123pUbLiCkEy123"
      }
    },
    "email": "demo@gmail.com",
    "email_verified": true,
    "iat": 1782911685,
    "iss": "https://accounts.google.com"
  },
  "kbJwtDecodedPayload": {
    "aud": "https://example.com",
    "iat": 1782911685,
    "nonce": "rAnDoM123rAnDoM123rAnDoM123rAnDoM123",
    "sd_hash": "hAsH456hAsH456hAsH456hAsH456hAsH456"
  }
}

২. সম্ভাব্য ভ্যালু যাচাই করা

পে-লোডের প্রাথমিক ভ্যালু আপনার দেওয়া ভ্যালুর সাথে মিলছে কিনা তা চেক করুন:

  • email_verified-এর মান true হিসেবে সেট করা আছে কিনা তা যাচাই করুন।
  • যাচাই করে দেখুন যে email আপনার ফর্মে দেওয়া ইমেল আইডির সাথে মিলছে কিনা।
  • যাচাই করে দেখুন যে nonce আপনার ফর্মে দেওয়া ননসের সাথে মিলছে কিনা।
  • aud আপনার সাইটের অরিজিনের সাথে মিলছে কিনা তা যাচাই করুন।
  • যাচাই করে দেখুন যে iat-এর তুলনামূলকভাবে সাম্প্রতিক টাইমস্ট্যাম্প আছে, যেমন, ফর্ম রেন্ডার করার পরে ।

৩. কী বাইন্ডিং যাচাই করা

ব্রাউজার ট্রানজ্যাকশনের জন্য একটি সাময়িক, ক্ষণস্থায়ী কী তৈরি করে যাতে এটি কনফার্ম করা যায় যে এটি টোকেনে সই করেছে। EVT-তে cnf (কনফার্মেশন) দাবি থেকে এই কী এক্সট্র্যাক্ট করুন এবং তারপর কী-বাউন্ড JWT যাচাই করতে এটি ব্যবহার করুন।

তারপর, প্রত্যাশিত হ্যাশ গণনা করুন এবং sd_hash দাবির সাথে তুলনা করুন। নিচে দেওয়া Node.js-এর উদাহরণ থেকে এই গণনা কীভাবে করতে হয় তা জানতে পারবেন:

const calculatedHash = createHash("sha256")
        .update(evtJwt + "~")
        .digest("base64url");

৪. ডিএনএস রেকর্ড যাচাই করা

ইমেল আইডি ডোমেনের জন্য _email-verification DNS রেকর্ড যাচাই করুন। যেমন, demo@gmail.com-এর জন্য, _email-verification.gmail.com TXT রেকর্ড কোয়েরি করুন। এই পরিষেবা প্রদানকারীর জন্য, কোয়েরি অ্যাকাউন্টের লোকেশন পরিষেবা প্রদানকারী রিটার্ন করে, অর্থাৎ accounts.google.com।

$ dig +short TXT _email-verification.gmail.com
"iss=accounts.google.com"

৫. ইস্যুকারীকে খুঁজে বের করা এবং EVT স্বাক্ষর যাচাই করা

নিশ্চিত করুন যে ইস্যুকারী /.well-known/email-verification রিসোর্স পরিবেশন করে, যা টোকেন ইস্যু করার জন্য এন্ডপয়েন্ট, সাইটের জন্য JSON ওয়েব কী (JWK) এবং সাপোর্ট করা সাইনিং অ্যালগরিদম প্রদান করে।

$ curl https://accounts.google.com/.well-known/email-verification
{
  "issuance_endpoint": "https://accounts.google.com/gsi/email-verification/issue",
  "jwks_uri": "https://verifiablecredentials-pa.googleapis.com/.well-known/vc-public-jwks",
  "signing_alg_values_supported": ["EdDSA"]
}

টোকেন থেকে এক্সট্র্যাক্ট করা EVT JWT যাচাই করতে JWKs ব্যবহার করুন। বেশিরভাগ JOSE লাইব্রেরি এই যাচাইকরণ ম্যানেজ করার জন্য ফাংশন প্রদান করে।

পাঁচটি ধাপই সফলভাবে সম্পূর্ণ হলে, আপনি প্রদানকারীর বিরুদ্ধে ইমেল আইডি যাচাই করেছেন। তা না হলে, আপনার স্বাভাবিক ফ্লো অনুযায়ী ব্যবহারকারীকে কনফার্মেশন ইমেল পাঠান।

ইমেল পরিষেবা প্রদানকারী ও ইস্যুকারী পরিষেবা প্রয়োগ করা

আরও বিস্তারিত জানতে, আপনি মক ইমেল পরিষেবা প্রদানকারী ডেমো কোড দেখে নিতে পারেন এবং ইমেল যাচাইকরণ এপিআই ও ইমেল যাচাইকরণ প্রোটোকল প্রস্তাবে উল্লিখিত ইস্যুকারী ধাপগুলি দেখতে পারেন।

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

ইস্যুকারী শনাক্তকরণ কনফিগার করা

আপনার ডোমেনের কোনও ইমেল আইডি বেছে নেওয়া হলে, ব্রাউজারকে অটোমেটিক আপনার যাচাইকরণ এন্ডপয়েন্ট খুঁজে পাওয়ার অনুমতি দিতে, DNS ও .well-known HTTP এন্ডপয়েন্ট ব্যবহার করে আপনার কনফিগারেশন এক্সপোজ করুন।

ডিএনএস ডেলিগেট রেকর্ড কনফিগার করা

আপনার ইমেল ডোমেনে একটি DNS TXT রেকর্ড কনফিগার করুন যা আপনার ইস্যুকারী শনাক্তকারীকে যাচাইকরণ কর্তৃত্ব প্রদান করে। আপনার পরিকাঠামোর উপর নির্ভর করে এইসব শনাক্তকারী একই ডোমেন ব্যবহার করতে পারে।

রেকর্ড ফর্ম্যাট: _email-verification.<email-domain>

জোন ফাইলের উদাহরণ:

_email-verification.example.com IN TXT "iss=accounts.issuer.example"

.well-known/email-verification এন্ডপয়েন্ট হোস্ট করা

/.well-known/ পাথের অধীনে আপনার ইস্যুকারী ডোমেনে একটি JSON মেটাডেটা ফাইল হোস্ট করুন। এই ফাইলে আপনার ইস্যু করার ক্ষমতা এবং আপনার ইনফ্রাস্ট্রাকচার যেসব ক্রিপ্টোগ্রাফিক সই করার অ্যালগরিদম সমর্থন করে, তার বিবরণ দেওয়া থাকে।

এন্ডপয়েন্ট: https://<issuer-domain>/.well-known/email-verification

উত্তরের উদাহরণ:

{
  "issuance_endpoint": "https://accounts.issuer.example/email-verification/issuance",
  "jwks_uri": "https://accounts.issuer.example/.well-known/vc-public-jwks",
  "signing_alg_values_supported": ["EdDSA", "ES256"]
}

.well-known/web-identity এন্ডপয়েন্ট হোস্ট করা

Federated Credentials (FedCM) API-এর অংশ হিসেবে আপনি হয়ত আগে থেকেই অতিরিক্ত .well-known JSON রিসোর্স প্রয়োগ করেছেন। এটি আপনার অ্যাকাউন্টের এন্ডপয়েন্ট এবং লগ-ইন URL-এর লিঙ্ক প্রদান করে।

এন্ডপয়েন্ট: https://<domain>/.well-known/web-identity

উত্তরের উদাহরণ:

{
  "accounts_endpoint": "https://accounts.issuer.example/accounts",
  "login_url": "https://accounts.issuer.example/login"
}

অ্যাকাউন্ট এন্ডপয়েন্ট ব্যবহার করা

FedCM API-এর অ্যাকাউন্ট এন্ডপয়েন্ট বর্তমানে সাইন-ইন করা অ্যাকাউন্টের তালিকা প্রদান করে। নিচে দেওয়া উদাহরণে ন্যূনতম উত্তর দেখানো হয়েছে। আরও বিবরণের জন্য, পরিচয় প্রদানকারী প্রয়োগ গাইড দেখুন।

এন্ডপয়েন্ট: .well-known/web-identity-এ উল্লেখ করা হয়েছে

নিচে একটি উদাহরণ উত্তর দেওয়া হল:

{
  "accounts": [
    {
      "id": "demo-example",
      "name": "Demo User",
      "email": "demo@example.com",
      "given_name": "Demo"
    }
  ]
}

Login Status API-এর সাথে ইন্টিগ্রেট করা

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

ব্যবহারকারী সফলভাবে সাইন-ইন বা সাইন-আউট করলে, ম্যাচ করা HTTP উত্তর হেডার পরিবেশন করুন:

Set-Login: logged-in
Set-Login: logged-out

অথবা, আপনার ওয়েব অ্যাপ্লিকেশন কন্টেক্সটে JavaScript ব্যবহার করে স্ট্যাটাস আপডেট করুন:

navigator.login.setStatus("logged-in");
navigator.login.setStatus("logged-out");

ইস্যু করার অনুরোধ ম্যানেজ করা

আপনার issuance_endpoint একটি application/x-www-form-urlencoded POST অনুরোধ পায় যার মধ্যে request_token থাকে।

নিচে উল্লেখ করা বিভাগগুলি থেকে ইস্যু করার অনুরোধ হ্যান্ডেল করার সম্পূর্ণ প্রসেস সম্পর্কে জানতে পারবেন।

১. ইস্যু করার অনুরোধ যাচাই করা

পড়ুন

ইনকামিং ব্রাউজার পেলোড পার্স ও যাচাই করা:

  • পদ্ধতি: POST
  • সেশন যাচাইকরণ: অনুরোধের সাথে ট্রান্সমিট করা ব্যবহারকারীর ফার্স্ট-পার্টি session/authentication কুকি যাচাই করে দেখুন যাতে অ্যাক্টিভ, অনুমোদিত পরিচয় সংক্রান্ত প্রসঙ্গ আছে কিনা তা নিশ্চিত করা যায়।
  • প্যারামিটার যাচাইকরণ: request_token প্যারামিটার (ব্রাউজার দ্বারা তৈরি করা একটি স্বাক্ষরিত JWT) এক্সট্র্যাক্ট করুন। এতে প্রত্যাশিত ক্ষণস্থায়ী সর্বজনীন কী, টার্গেট ইমেল, সঠিক দর্শক এবং সঠিক টাইমস্ট্যাম্প আছে কিনা যাচাই করুন।

ডিকোড করা টোকেনটি দেখতে এই ধরনের হবে:

{
  "decodedHeader": {
    "alg": "ES256",
    "typ": "JWT",
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "pUbLiCKeY123pUbLiCKeY123pUbLiCKeY123",
      "y": "pUbLiCKeY456pUbLiCKeY456pUbLiCKeY456"
    }
  },
  "decodedPayload": {
    "iss": "https://accounts.issuer.example",
    "sub": "demo@example.com",
    "email": "demo@example.com",
    "iat": 1780272000,
    "exp": 1780272300
  },
  "signature": "SIGnatURE-123_SIGnatURE-123_SIGnatURE-123"
}

২. টোকেন দিয়ে উত্তর দেওয়া

সেশন ও অনুরোধ টোকেন যাচাই করা হয়ে গেলে, পেলোড ব্যবহার করে একটি সাইন করা সিলেক্টিভ ডিসক্লোজার JWT (SD-JWT) তৈরি করুন:

{
  "iss": "https://accounts.issuer.example",
  "iat": 1780272000,
  "exp": 1780272300,
  "cnf": {
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "pUbLiCKeY123pUbLiCKeY123pUbLiCKeY123",
      "y": "pUbLiCKeY456pUbLiCKeY456pUbLiCKeY456"
    }
  },
  "email": "demo@example.com",
  "email_verified": true
}

আপনার প্রাইভেট কী ও কাজ করে এমন অ্যালগরিদম ব্যবহার করে পেলোডে সই করুন। যেমন, Node.js-এ jose ব্যবহার করা:

const evtJwt = await new SignJWT(evtPayload)
   .setProtectedHeader({
     alg: "EdDSA",
     kid: PRIVATE_KEY_JWK.kid, // Key ID corresponding to our JWKS keys
     typ: "evt+jwt", // Standard Token Type for EVTs
   })
   .sign(privateKey);

 // Standard SD-JWT compatibility requires appending a trailing tilde "~"
 // to separate the signed token from the key binding section.
 const issuanceToken = `${evtJwt}~`;

সফলতার রেসপন্সের উদাহরণ (HTTP 200):

{
  "issuance_token": "tOkEn123tOkEn123tOkEn123...~"
}

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

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

Chrome-এ প্রয়োগ করার সময় কোনও সমস্যা হলে, এই কম্পোনেন্টের বিরুদ্ধে অভিযোগ জানান:

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

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

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