التحقق من عنوان البريد الإلكتروني

واجهة برمجة التطبيقات Email Verification API هي اقتراح يتيح للمتصفّح التواصل مباشرةً مع مقدّم خدمة البريد الإلكتروني للتأكّد من أنّ المستخدم يملك عنوان البريد الإلكتروني. يُدخل المستخدمون عناوين بريدهم الإلكتروني ويرسلون النموذج، ويتأكّد الموقع الإلكتروني من رمز التحقّق الموقَّع من عنوان البريد الإلكتروني من المتصفّح مع مقدّم الخدمة بدون إرسال رسالة إلكترونية أو مقاطعة تدفّق المستخدم.

عند جمع عناوين البريد الإلكتروني أثناء عملية الاشتراك أو تسجيل الدخول أو الدفع أو الاشتراك في النشرة الإخبارية أو استرداد الحساب، عادةً ما تؤكّد المواقع الإلكترونية أنّ الشخص الذي يرسل النموذج يتحكّم في العنوان. تتطلّب طرق إثبات الملكية الحالية من المستخدمين مغادرة موقعك الإلكتروني أو التبديل بين التطبيقات للتحقّق من صندوق الوارد أو نسخ كلمة مرور صالحة لمرة واحدة أو النقر على رابط إثبات الملكية. يؤدي هذا التعطيل إلى زيادة معدّل مغادرة المستخدمين للجلسة والتخلي عنها، سواء كانوا مستخدمين بشريين أو وكلاء آليين. يواجه المستخدمون غالبًا صعوبات في استخدام طرق التحقّق الحالية، مثل تأخُّر وصول الرسائل الإلكترونية أو انتهاء صلاحية الروابط أو عدم التعرّف على الرموز.

عرض توضيحي لطلب تأكيد عنوان البريد الإلكتروني
عرض توضيحي لإشعار المستخدم بشأن إثبات ملكية عنوان البريد الإلكتروني

يعمل تأكيد عنوان البريد الإلكتروني كتحسين تدريجي للمسار الحالي:

  • عدم حدوث انقطاع: تتم عملية التحقّق في الخلفية أثناء ملء المستخدم للنموذج.
  • لا حاجة إلى رصد الميزة: تضيف المواقع الإلكترونية حقل إدخال للبريد الإلكتروني وحقل إدخال مخفيًا للرمز المميّز إلى نماذجها. إذا كان المتصفّح أو مقدّم الخدمة لا يتيح إثبات ملكية عنوان البريد الإلكتروني، أو إذا تعذّر إثبات الملكية، يعود الموقع الإلكتروني إلى مسار تأكيد عنوان البريد الإلكتروني التلقائي.
  • تقليل مخاطر التصيّد الاحتيالي: لا يتوفّر رمز يمكن نسخه أو فرصة لإرسال المستخدم إلى موقع إلكتروني مزيّف.

يمكنك اختبار المسار في العرض التوضيحي:

اعتبارات مرحلة التجربة والتقييم

مراحل التجربة والتقييم هي تجارب تهدف إلى جمع الملاحظات، لذا فإنّ ملاحظاتك مهمة جدًا إذا شاركت فيها بصفتك طرفًا معتمدًا أو مقدّم خدمة هوية. للإبلاغ عن مشاكل، استخدِم مستودعات GitHub التالية:

  • واجهة برمجة التطبيقات للتحقّق من عنوان البريد الإلكتروني في المتصفّح: 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 باستخدام هذا الحساب في المتصفّح نفسه.

تسلسل البروتوكول

بنية عملية التحقّق من عنوان البريد الإلكتروني
بنية خطوات إثبات ملكية عنوان البريد الإلكتروني
  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 داخل رمز JWT لربط المفتاح (KB-JWT). وعندما يرسل المستخدم النموذج، يملأ Chrome حقل الإدخال المخفي بالرمز المميز المدمج (<EVT>~<KB-JWT>) ويعرض إشعارًا صغيرًا لإعلام المستخدم بأنّ مقدّم خدمة البريد الإلكتروني قد أثبت ملكيته للعنوان.
  6. التحقّق من صحة المطالبات وقاعدة المعرفة: يحلّل خادم الجهة المعتمِدة الرمز المميّز <EVT>~<KB-JWT>، ويتحقّق من صحة المطالبات المتوقّعة (email وemail_verified وaud وnonce وiat وexp)، كما يتحقّق من توقيع ربط المفتاح مع المفتاح العام المؤقت في cnf.jwk.
  7. نظام أسماء النطاقات والمفاتيح العامة: يطلب الطرف المعتمد سجلّ TXT الخاص بنظام أسماء النطاقات _email-verification.<email-domain> للتأكّد من أنّه يتطابق مع مطالبة iss الرمز المميّز، ثم يسترد البيانات الوصفية والمفاتيح العامة الخاصة بالجهة المصدرة .well-known/email-verification من jwks_uri.
  8. التحقّق من صحة EVT وإكماله: يتحقّق الطرف المعتمد من صحة توقيع EVT الجهة المصدرة باستخدام المفتاح العام JWKS لمقدّم الخدمة. في حال عدم تلقّي رمز مميّز أو تعذُّر إكمال أي خطوة من خطوات التحقّق، سيعود الموقع الإلكتروني إلى عملية تأكيد عنوان البريد الإلكتروني الحالية.

في المرّة الأولى التي يثبت فيها المستخدم ملكيته لعنوان بريد إلكتروني، يعرض Chrome طلب إذن (مربع حوار على الكمبيوتر المكتبي أو ورقة في أسفل الشاشة على Android) قبل طلب رمز مميّز. في حال منح هذا الإذن، يتم تذكُّر عنوان البريد الإلكتروني على جميع المواقع الإلكترونية المشارِكة.

إعدادات Chrome

يمكن للمستخدمين إدارة عناوين البريد الإلكتروني التي تم تأكيدها باتّباع الخطوات التالية:

  • على الكمبيوتر، انتقِل إلى الإعدادات > الملء التلقائي وكلمات المرور > معلومات الاتصال > البريد الإلكتروني الذي تم تأكيده (أو افتح chrome://settings/contactInfo).
  • على جهاز Android، ضمن الإعدادات > العناوين والمزيد > البريد الإلكتروني الذي تم التحقّق منه

يمكن للمستخدمين إيقاف الميزة بالكامل أو إدارة عناوين البريد الإلكتروني الفردية التي تم التحقّق منها.

اعتبارات حالات الاستخدام

يُعدّ تأكيد عنوان البريد الإلكتروني تحسينًا تدريجيًا على مسار المستخدم الحالي، وهو يزيل حاجة المستخدم إلى مغادرة موقعك الإلكتروني لاسترداد كلمة مرور صالحة لمرة واحدة أو النقر على رابط. يمكن للمواقع الإلكترونية إضافة حقول تأكيد عنوان البريد الإلكتروني إلى جميع النماذج ذات الصلة، مثل عمليات تسجيل الدخول والاشتراك في النشرات الإخبارية وإنشاء الحسابات واسترداد كلمات المرور. لا يتم تفعيل EVP إلا إذا كان المتصفّح يتيح ذلك. في حال عدم تلقّي رمز عند إرسال الطلب أو تعذُّر إكمال أي من خطوات التحقّق، يمكنك الرجوع إلى عملية تأكيد عنوان البريد الإلكتروني التلقائية. يعني هذا أيضًا أنّه لا يمكن رصد الميزات لواجهة برمجة التطبيقات، فالموقع الإلكتروني للتحقّق يتعامل مع EVT على أنّه اختياري، ويعالجه إذا كان متوفّرًا في الطلب.

يؤكّد إثبات ملكية عنوان البريد الإلكتروني أنّ المستخدم لديه جلسة نشطة مع مقدّم خدمة عنوان البريد الإلكتروني. ولا يؤكّد أنّ رسالتك الإلكترونية قد وصلت إلى المستخدم. قد تظل بحاجة إلى إرسال رسائل إلكترونية ترحيبية أو رسائل إلكترونية خاصة بإعداد الحساب، وقد تحتاج إلى مطالبة المستخدم بالتحقّق من إعدادات الرسائل غير المرغوب فيها.