تأیید صحت رایانامه

‫Email Verification API پیشنهادی است که به مرورگر امکان می‌دهد مستقیماً با ارائه‌دهنده ایمیل ارتباط برقرار کند تا تأیید کند که کاربر مالک نشانی ایمیل است. کاربران ایمیل خود را وارد می‌کنند، فرم را ارسال می‌کنند، و سایت بدون ارسال ایمیل یا ایجاد وقفه در جریان کاربر، کد درستی‌سنجی ایمیل امضاشده را از مرورگر با ارائه‌دهنده درستی‌سنجی می‌کند.

هنگام جمع‌آوری نشانی ایمیل درطول ثبت‌نام، ورود به سیستم، تسویه‌حساب، اشتراک خبرنامه، یا بازیابی حساب، سایت‌ها معمولاً تأیید می‌کنند که فردی که فرم را ارسال می‌کند بر نشانی کنترل دارد. روش‌های درستی‌سنجی موجود کاربران را ملزم می‌کند از سایت شما خارج شوند، برنامه‌ها را برای بررسی صندوق ورودی‌شان عوض کنند، رمز یک‌بارمصرف را کپی کنند، یا روی پیوند درستی‌سنجی کلیک کنند. این اختلال باعث افزایش نرخ خروج و رها کردن جلسه هم برای کاربران انسانی و هم برای نمایندگان خودکار می‌شود. کاربران اغلب با روش‌های درستی‌سنجی موجود، مانند ایمیل‌های تأخیری، پیوندهای منقضی‌شده، یا کدهای ناشناس، اصطکاک تجربه می‌کنند.

نسخه نمایشی پیام‌واره کاربر «درستی‌سنجی ایمیل»
نمونه پیام‌واره کاربر «درستی‌سنجی ایمیل»

درستی‌سنجی ایمیل به‌عنوان بهبود تدریجی جریان موجود شما عمل می‌کند:

  • بدون اختلال: درستی‌سنجی در پس‌زمینه و درحالی‌که کاربر فرم را تکمیل می‌کند انجام می‌شود.
  • نیازی به تشخیص ویژگی نیست: سایت‌ها ورودی ایمیل و ورودی رمز پنهان را به فرم‌هایشان اضافه می‌کنند. اگر مرورگر یا ارائه‌دهنده از درستی‌سنجی ایمیل پشتیبانی نکند یا درستی‌سنجی انجام نشود، سایت به روند تأیید ایمیل پیش‌فرض خود برمی‌گردد.
  • به‌حداقل رساندن خطرات فیشینگ: کدی برای کپی کردن یا فرصتی برای ارسال کاربر به سایت جعلی وجود ندارد.

می‌توانید جریان را در نسخه نمایشی آزمایش کنید:

ملاحظات آزمایش معرفی ویژگی جدید

آزمایش‌های معرفی ویژگی جدید برای جمع‌آوری بازخورد انجام می‌شوند، بنابراین اگر به‌عنوان طرف اتکا یا ارائه‌دهنده هویت شرکت می‌کنید، ورودی شما بسیار مهم است. برای گزارش کردن مشکلات، از مخزن‌های GitHub زیر استفاده کنید:

اگر در پیاده‌سازی Chrome با اشکالاتی مواجه شدید، در عنصر زیر مشکل ثبت کنید:

با افزودن نشان آزمایش معرفی ویژگی جدید، عملکرد آزمایش معرفی ویژگی جدید را براساس هر پاسخ کنترل می‌کنید. این کار به شما امکان می‌دهد ویژگی را به بخش خاصی از کاربران خود، مانند جمعیت آزمایش A/B، محدود کنید. یا اینکه اگر گروهی از کاربران دارید که آزمایش بتا یا پیش‌نمایش زودرس انجام می‌دهند، ممکن است بخواهید یا نیاز داشته باشید این ویژگی را برای آن‌ها فعال کنید. در این مورد، قبل‌از صدور یا اعتبارسنجی کردن کد، آن را با نشانی ایمیل ارائه‌شده مقایسه کنید.

آزمایش‌های معرفی ویژگی جدید همچنین محدودیت‌های ترافیکی دارند تا سایت‌هایی که قبل‌از راه‌اندازی به این ویژگی تکیه می‌کنند به حداقل برسند. میانای برنامه‌سازی کاربردی صادرکننده درحال توسعه است و باید انتظار تغییرات ناسازگار با نسخه‌های قبلی را همراه با به‌روزرسانی‌های «تجربه کاربری Chrome» داشته باشید.

با پیشرفت توسعه، در اینجا در وبلاگ و در فهرست پستی evp-announce@chromium.org منتظر به‌روزرسانی‌های بیشتر باشید.

گردش درستی‌سنجی ایمیل

بخش‌های زیر اصطلاحات کلیدی و مراحل پروتکل را هنگام استفاده از Email Verification API توضیح می‌دهد.

واژه‌های کلیدی

اصطلاحات کلیدی برای Email Verification API عبارت‌اند از:

  • درستی‌سنج: سایتی که نشانی ایمیل را جمع‌آوری می‌کند و می‌خواهد آن را درستی‌سنجی کند. درستی‌سنج را طرف متکی نیز می‌نامند.
  • ارائه‌دهنده ایمیل: سرویسی که نشانی ایمیل کاربر را ارائه می‌دهد، برای مثال gmail.com.
  • صادرکننده: سرویسی که حساب ایمیل کاربر را مدیریت می‌کند، برای مثال accounts.google.com. صادرکننده را ارائه‌دهنده هویت نیز می‌نامند.

در برخی موارد، ارائه‌دهنده ایمیل و صادرکننده از یک دامنه فعالیت می‌کنند. بااین‌حال، تمایز بین آن‌ها مهم است زیرا Email Verification API از جلسه فعال در مرورگر با ارائه‌دهنده هویت به‌عنوان روش درستی‌سنجی استفاده می‌کند. برای مثال، برای درستی‌سنجی example@gmail.com کاربر باید با آن حساب در همان مرورگر به سیستم google.com وارد شده باشد.

جریان پروتکل

معماری گردش کار درستی‌سنجی ایمیل
معماری جریان درستی‌سنجی ایمیل
  1. ارائه فرم: طرف متکی فرم HTML حاوی <input type="email"> و ورودی پنهان نشان‌گذاری‌شده با autocomplete="email-verification-token" و nonce یکتای هر نمونه را ارائه می‌کند.
  2. ورود ایمیل: وقتی کاربر نشانی ایمیلی را وارد می‌کند - چه با انتخاب پیشنهاد تکمیل خودکار یا با تایپ کردن یا جای‌گذاری کردن و خارج شدن از فیلد (blur) - مرورگر درستی‌سنجی را در پس‌زمینه راه‌اندازی می‌کند.
  3. اکتشاف و جلسه: مرورگر برای _email-verification.<email-domain> از ساختار ساناد TXT پُرسمان می‌کند تا مبدأ صادرکننده مجاز ارائه‌دهنده را اکتشاف کند، سپس بررسی می‌کند که آیا کاربر بااستفاده از پیکربندی .well-known/web-identity صادرکننده و نقاط پایانی حساب‌های FedCM جلسه فعالی دارد یا نه. اگر دامنه سابقه EVP منتشر نکند یا جلسه فعالی وجود نداشته باشد، مرورگر بدون درخواست از کاربر، درستی‌سنجی را متوقف می‌کند.
  4. صدور رمز: مرورگر issuance_endpoint ارائه‌دهنده را از .well-known/email-verification پیدا می‌کند، یک جفت کلید موقت ایجاد می‌کند، و بااستفاده از «امضاهای پیام HTTP» (RFC 9421) یک درخواست HTTP POST با کوکی‌های جلسه طرف اول صادرکننده و نشانی ایمیل هدف ارسال می‌کند تا «رمز درستی‌سنجی ایمیل» امضاشده (EVT) دریافت کند.
  5. پیوند کلید و ارسال: مرورگر EVT امضاشده را به مبدأ طرف مورد اعتماد و فرم nonce در داخل «توکن وب جاوا با پیوند کلید» (KB-JWT) پیوند می‌دهد. وقتی کاربر فرم را ارسال می‌کند، Chrome ورودی پنهان را با توکن ترکیبی (<EVT>~<KB-JWT>) تکمیل می‌کند و اعلان کوچکی نمایش می‌دهد که به کاربر اطلاع می‌دهد ارائه‌دهنده ایمیلش نشانی او را تأیید کرده است.
  6. اعتبارسنجی ادعاها و پایگاه دانش: سرور طرف متکی نشانه <EVT>~<KB-JWT> را تجزیه می‌کند، ادعاهای موردانتظار (email، email_verified، aud، nonce، iat، و exp) را اعتبارسنجی می‌کند، و امضای پیوند کلید را دربرابر کلید عمومی موقت در cnf.jwk درستی‌سنجی می‌کند.
  7. ساناد و کلیدهای عمومی: طرف مورد اعتماد _email-verification.<email-domain> گزارش ساناد TXT را پُرسمان می‌کند تا تأیید کند با ادعای iss نشان مطابقت دارد، سپس فوق‌داده‌ها و کلیدهای عمومی صادرکننده .well-known/email-verification را از jwks_uri واکشی می‌کند.
  8. درستی‌سنجی EVT و تکمیل: طرف متکی امضای EVT صادرکننده را بااستفاده از JWKS عمومی ارائه‌دهنده درستی‌سنجی می‌کند. اگر کد تأییدی دریافت نشود یا هریک از مراحل درستی‌سنجی ناموفق باشد، سایت به فرایند تأیید ایمیل موجود خود برمی‌گردد.

اولین‌باری که کاربر نشانی ایمیلی را درستی‌سنجی می‌کند، Chrome قبل‌از درخواست کردن کد، پیام‌واره اجازه (کادر گفتگویی در رایانه یا برگه پایینی در Android) را نمایش می‌دهد. درصورت اعطای این اجازه، این اجازه برای هر نشانی ایمیل در سایت‌های شرکت‌کننده به‌خاطر سپرده می‌شود.

تنظیمات Chrome

کاربران می‌توانند ایمیل‌های تأییدشده خود را مدیریت کنند:

  • در رایانه، در بخش تنظیمات > تکمیل خودکار و گذرواژه‌ها > اطلاعات تماس > ایمیل درستی‌سنجی‌شده (یا chrome://settings/contactInfo را باز کنید)
  • در Android، در تنظیمات > نشانی‌ها و موارد دیگر > ایمیل تأییدشده

کاربران می‌توانند این ویژگی را به‌طور کامل غیرفعال کنند یا نشانی‌های ایمیل درستی‌سنجی‌شده را به‌صورت جداگانه مدیریت کنند.

ملاحظات مورد استفاده

درستی‌سنجی ایمیل یک بهبود تدریجی در جریان موجود شما است که نیاز کاربر به ترک سایت برای دریافت رمز یک‌بارمصرف یا کلیک کردن روی پیوند را برطرف می‌کند. سایت‌ها می‌توانند فیلدهای درستی‌سنجی ایمیل را به همه فرم‌های مربوطه، مانند ورود به سیستم، ثبت‌نام خبرنامه، ایجاد حساب، و بازیابی گذرواژه اضافه کنند. «ای‌وی‌پی» فقط درصورتی راه‌اندازی می‌شود که مرورگر از آن پشتیبانی کند. اگر هنگام ارسال کد دریافت نشد یا هریک از مراحل اعتبارسنجی ناموفق بود، می‌توانید به جریان تأیید ایمیل پیش‌فرض خود برگردید. این همچنین به این معنی است که هیچ ویژگی تشخیص برای API وجود ندارد؛ سایت درستی‌سنج EVT را اختیاری درنظر می‌گیرد و درصورت وجود در درخواست، آن را پردازش می‌کند.

درستی‌سنجی ایمیل تأیید می‌کند که کاربر جلسه فعالی با ارائه‌دهنده نشانی ایمیل خود دارد. این ویژگی تأیید نمی‌کند که ایمیل شما به دست کاربر رسیده است. ممکن است همچنان بخواهید ایمیل‌های خوشامدگویی یا آماده‌سازی موجود را ارسال کنید و ممکن است بخواهید یا نیاز داشته باشید که از کاربر بخواهید تنظیمات هرزنامه خود را بررسی کند.