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

‫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. کاوش و جلسه: مرورگر ساختار DNS TXT را برای _email-verification.<email-domain> جستجو می‌کند تا مبدأ صادرکننده مجاز ارائه‌دهنده را کاوش کند، سپس بررسی می‌کند که آیا کاربر بااستفاده از پیکربندی .well-known/web-identity صادرکننده و نقاط پایانی حساب‌های FedCM جلسه فعالی دارد یا نه. اگر دامنه سابقه EVP منتشر نکند یا جلسه فعالی وجود نداشته باشد، مرورگر بدون درخواست از کاربر، درستی‌سنجی را متوقف می‌کند.
  4. صدور توکن: مرورگر issuance_endpoint ارائه‌دهنده را از .well-known/email-verification پیدا می‌کند، یک جفت کلید موقت ایجاد می‌کند، و یک درخواست HTTP POST بااستفاده از «امضاهای پیام HTTP»‏ (RFC 9421) با کوکی‌های جلسه شخص اول صادرکننده و نشانی ایمیل هدف ارسال می‌کند تا «توکن درستی‌سنجی ایمیل» (EVT) امضاشده را دریافت کند.
  5. اتصال کلید و ارسال: مرورگر EVT امضاشده را به مبدأ طرف اعتماد و فرم nonce در Key Binding JWT (KB-JWT) متصل می‌کند و اعلان کوچکی نمایش می‌دهد که به کاربر اطلاع می‌دهد ارائه‌دهنده ایمیل او نشانی‌اش را تأیید کرده است. وقتی کاربر فرم را ارسال می‌کند، Chrome ورودی پنهان را با کد ترکیبی (<EVT>~<KB-JWT>) پر می‌کند.
  6. اعتبارسنجی ادعاها و KB: سرور طرف اعتمادکننده <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، در تنظیمات > نشانی‌ها و موارد دیگر > ایمیل تأییدشده

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

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

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

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