Email Verification API پیشنهادی است که به مرورگر امکان میدهد مستقیماً با ارائهدهنده ایمیل ارتباط برقرار کند تا تأیید کند که کاربر مالک نشانی ایمیل است. کاربران ایمیل خود را وارد میکنند، فرم را ارسال میکنند، و سایت بدون ارسال ایمیل یا ایجاد وقفه در جریان کاربر، کد درستیسنجی ایمیل امضاشده را از مرورگر با ارائهدهنده درستیسنجی میکند.
هنگام جمعآوری نشانی ایمیل درطول ثبتنام، ورود به سیستم، تسویهحساب، اشتراک خبرنامه، یا بازیابی حساب، سایتها معمولاً تأیید میکنند که فردی که فرم را ارسال میکند بر نشانی کنترل دارد. روشهای درستیسنجی موجود کاربران را ملزم میکند سایت شما را ترک کنند، برای بررسی صندوق ورودیشان برنامهها را عوض کنند، گذرواژه یکبارمصرف را کپی کنند، یا روی پیوند درستیسنجی کلیک کنند. این اختلال باعث افزایش نرخ خروج و رها کردن جلسه هم برای کاربران انسانی و هم برای نمایندگان خودکار میشود. کاربران اغلب با روشهای درستیسنجی موجود، مانند ایمیلهای تأخیری، پیوندهای منقضیشده، یا کدهای ناشناخته، مشکل دارند.
درستیسنجی ایمیل بهعنوان ارتقای پیشرو برای جریان فعلی شما عمل میکند:
- بدون اختلال: درستیسنجی در پسزمینه انجام میشود درحالیکه کاربر فرم را تکمیل میکند.
- بدون نیاز به تشخیص ویژگی: سایتها یک ورودی ایمیل و یک ورودی توکن پنهان به فرمهای خود اضافه میکنند. اگر مرورگر یا ارائهدهنده از درستیسنجی ایمیل پشتیبانی نکند، یا اگر درستیسنجی ناموفق باشد، سایت به جریان تأیید ایمیل پیشفرض خود برمیگردد.
- بهحداقل رساندن خطرات رمزگیری: هیچ کدی برای کپی کردن یا فرصتی برای ارسال کاربر به سایت جعلی وجود ندارد.
پیوندهای مفید
- مشخصات «میانای برنامهسازی کاربردی» برای تأیید ایمیل (WICG) (مخزن GitHub)
- پروتکل پیشنویس اینترنتی تأیید ایمیل (IETF) (مخزن GitHub)
- درستیسنجی ایمیل در وضعیت پلاتفرم Chrome
- ثبتنام آزمایش معرفی ویژگی جدید «درستیسنجی ایمیل»
میتوانید جریان را در نسخه نمایشی آزمایش کنید:
- نمونه صادرکننده: حساب ایمیل ساختگی و جلسه ورود به سیستم ارائه میدهد.
- نمایش درستیسنج: ایمیل نمایشی یا ایمیل هر ارائهدهنده شرکتکننده را درستیسنجی کنید.
ملاحظات آزمایش معرفی ویژگی جدید
آزمایشهای معرفی ویژگی جدید آزمایشهایی برای جمعآوری بازخورد هستند، بنابراین اگر بهعنوان طرف متکی یا ارائهدهنده هویت شرکت میکنید، ورودی شما بسیار مهم است. برای گزارش کردن مشکلات، از مخزنهای GitHub زیر استفاده کنید:
- Browser Email Verification API: WICG/email-verification
- پروتکل درستیسنجی ایمیل: dickhardt/email-verification
اگر در پیادهسازی 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 وارد شده باشد.
جریان پروتکل
- ارائه فرم: طرف متکی فرم HTML حاوی
<input type="email">و ورودی پنهان علامتگذاریشده باautocomplete="email-verification-token"وnonceیکتا برای هر نمونه را ارائه میکند. - ورود ایمیل: وقتی کاربر نشانی ایمیلی را وارد میکند - چه با انتخاب پیشنهاد تکمیل خودکار یا با تایپ کردن یا جایگذاری کردن و خارج شدن از فیلد (
blur) - مرورگر درستیسنجی را در پسزمینه راهاندازی میکند. - کاوش و جلسه: مرورگر ساختار DNS TXT را برای
_email-verification.<email-domain>جستجو میکند تا مبدأ صادرکننده مجاز ارائهدهنده را کاوش کند، سپس بررسی میکند که آیا کاربر بااستفاده از پیکربندی.well-known/web-identityصادرکننده و نقاط پایانی حسابهای FedCM جلسه فعالی دارد یا نه. اگر دامنه سابقه EVP منتشر نکند یا جلسه فعالی وجود نداشته باشد، مرورگر بدون درخواست از کاربر، درستیسنجی را متوقف میکند. - صدور توکن: مرورگر
issuance_endpointارائهدهنده را از.well-known/email-verificationپیدا میکند، یک جفت کلید موقت ایجاد میکند، و یک درخواست HTTPPOSTبااستفاده از «امضاهای پیام HTTP» (RFC 9421) با کوکیهای جلسه شخص اول صادرکننده و نشانی ایمیل هدف ارسال میکند تا «توکن درستیسنجی ایمیل» (EVT) امضاشده را دریافت کند. - اتصال کلید و ارسال: مرورگر
EVTامضاشده را به مبدأ طرف اعتماد و فرمnonceدر Key Binding JWT (KB-JWT) متصل میکند و اعلان کوچکی نمایش میدهد که به کاربر اطلاع میدهد ارائهدهنده ایمیل او نشانیاش را تأیید کرده است. وقتی کاربر فرم را ارسال میکند، Chrome ورودی پنهان را با کد ترکیبی (<EVT>~<KB-JWT>) پر میکند. - اعتبارسنجی ادعاها و KB: سرور طرف اعتمادکننده
<EVT>~<KB-JWT>کد را تجزیه میکند، ادعاهای موردانتظار (email،email_verified،aud،nonce،iat، وexp) را اعتبارسنجی میکند، و امضای اتصال کلید را دربرابر کلید عمومی زودگذر درcnf.jwkدرستیسنجی میکند. - ساناد و کلیدهای عمومی: طرف اعتمادکننده
_email-verification.<email-domain>ساختار ساناد TXT را جستجو میکند تا تأیید کند که با ادعایissکد مطابقت دارد، سپس.well-known/email-verificationفراداده و کلیدهای عمومی صادرکننده را ازjwks_uriواکشی میکند. - درستیسنجی EVT و تکمیل: طرف متکی امضای صادرکننده
EVTرا بااستفاده ازJWKSعمومی ارائهدهنده درستیسنجی میکند. اگر هیچ کدی دریافت نشود یا هرکدام از مراحل اعتبارسنجی ناموفق باشد، سایت به فرایند تأیید ایمیل موجود خود برمیگردد.
اولین باری که کاربر نشانی ایمیلی را درستیسنجی میکند، Chrome قبلاز درخواست کردن نشان، درخواست اجازهای (کادر گفتگویی در رایانه، یا برگهای در پایین صفحه در Android) نمایش میدهد. درصورت اعطا، این اجازه برای هر نشانی ایمیل در سایتهای شرکتکننده بهخاطر سپرده میشود.
تنظیمات Chrome
کاربران میتوانند ایمیلهای تأییدشده خود را مدیریت کنند:
- در رایانه، در بخش تنظیمات > تکمیل خودکار و گذرواژهها > اطلاعات
تماس > ایمیل تأییدشده (یا
chrome://settings/contactInfoرا باز کنید) - در Android، در تنظیمات > نشانیها و موارد دیگر > ایمیل تأییدشده
کاربران میتوانند این ویژگی را بهطور کامل غیرفعال کنند یا نشانیهای ایمیل درستیسنجیشده را بهصورت جداگانه مدیریت کنند.
ملاحظات مورد استفاده
درستیسنجی ایمیل یک بهبود تدریجی در جریان موجود شما است که نیاز کاربر به ترک سایت برای دریافت رمز یکبارمصرف یا کلیک کردن روی پیوند را برطرف میکند. سایتها میتوانند فیلدهای درستیسنجی ایمیل را به همه فرمهای مربوطه، مانند ورود به سیستم، ثبتنام در خبرنامه، ایجاد حساب، و بازیابی گذرواژه اضافه کنند. EVP فقط درصورتی راهاندازی میشود که مرورگر از آن پشتیبانی کند. اگر کدی در ارسال دریافت نشد یا هرکدام از مراحل اعتبارسنجی ناموفق بود، میتوانید به جریان تأیید ایمیل پیشفرض خود برگردید. این یعنی هیچ تشخیص ویژگیای برای API وجود ندارد؛ سایت تأییدکننده با EVT بهعنوان اختیاری رفتار میکند و اگر در درخواست وجود داشته باشد، آن را پردازش میکند.
درستیسنجی ایمیل تأیید میکند که کاربر جلسه فعالی با ارائهدهنده نشانی ایمیل خود دارد. این ویژگی تأیید نمیکند که ایمیل شما به دست کاربر رسیده است. شاید همچنان بخواهید ایمیلهای خوشامدگویی یا آمادهسازی موجود را ارسال کنید و شاید بخواهید یا نیاز باشد از کاربر بخواهید تنظیمات هرزنامه خود را بررسی کند.