POST/api/public/access-request/email/verify

يؤكّد الرمز المُرسل عبر البريد الإلكتروني ويُصدر Token تحقق لطلب الوصول اللاحق.

تؤكد نقطة النهاية `POST /api/public/access-request/email/verify` رمز التحقق الذي أُرسل مسبقًا إلى عنوان البريد الإلكتروني ضمن مسار طلب الوصول. لا تتطلب المصادقة المسبقة، لأن المستخدم لم ينشئ حسابًا بعد، لكنها لا تعمل بصورة مستقلة: يجب أولًا بدء عملية التحقق عبر نقطة إرسال الرمز والحصول على `verification_id`. يتضمن جسم الطلب عادةً معرّف التحقق، عنوان البريد الإلكتروني نفسه، والرمز الذي أدخله المستخدم. يجب أن تطابق هذه القيم السجل الذي أنشأته خطوة البدء؛ تغيير البريد أو استخدام معرّف من محاولة أخرى يؤدي إلى فشل التحقق. العملية غير متطابقة القوة لأنها تستهلك حالة تحقق محددة وتصدر، عند النجاح، رمزًا يمكن استخدامه في الخطوة التالية من طلب الوصول. لذلك لا ينبغي للواجهة إرسال الطلب عدة مرات بالتوازي. بعد النقر على زر التأكيد، يُفضّل تعطيل الزر مؤقتًا وانتظار النتيجة. عند النجاح، يجب حفظ Token التحقق في ذاكرة مؤقتة آمنة داخل تدفق الصفحة واستخدامه فقط لإكمال الطلب المرتبط به، لا عرضه في عنوان URL أو كتابته في سجل المتصفح. تشمل حالات الخطأ المعتادة نقص أحد الحقول، عدم تطابق البريد، إدخال رمز غير صحيح، انتهاء صلاحية الرمز، أو استخدام محاولة سبق استهلاكها. في هذه الحالات ينبغي أن تعرض الواجهة رسالة واضحة للمستخدم وتسمح، عند الحاجة، ببدء إرسال رمز جديد بدل تكرار نفس الطلب بلا نهاية. لا يجوز استنتاج أن عنوان البريد يخص حسابًا قائمًا من صياغة الاستجابة؛ الغرض من المسار هو تأكيد السيطرة على البريد في سياق طلب الوصول، وليس كشف معلومات عن المستخدمين. مثال عملي: يكتب العميل بريده في نموذج الوصول ويطلب رمزًا. يتلقى `verification_id` من خطوة البدء، ثم يدخل الرمز المرسل إلى بريده. ترسل الواجهة القيم الثلاث إلى هذه النقطة. إذا نجح التحقق، تعيد الخدمة نتيجة نجاح وToken متابعة. بعدها يمكن إرفاق هذا الرمز بطلب الوصول النهائي. إذا انتهت صلاحية الرمز، يجب إعادة خطوة البدء بدل تعديل القيمة محليًا أو محاولة تجاوز التحقق. ينبغي ربط Token الناتج بعملية طلب الوصول الحالية فقط. إذا عاد المستخدم إلى بداية النموذج أو غيّر عنوان البريد، يجب إلغاء حالة المتابعة المحلية وبدء تحقق جديد. الاحتفاظ بالرمز بعد انتهاء العملية يزيد خطر استخدامه في سياق خاطئ، لذلك يُحذف من الذاكرة المؤقتة بعد الإرسال النهائي أو عند إغلاق التدفق.

المصادقة والأمان

لا يلزم أي مصادقة

متطابق القوة: لا

المعلمات

verification_id(body, string، إلزامي)UUID من start-verification
email(body, string، إلزامي)نفس عنوان البريد الإلكتروني
code(body, string، إلزامي)رمز مكوّن من 6 أرقام من البريد الإلكتروني

مثال طلب

{"verification_id":"<UUID>","email":"max@example.com","code":"123456"}

مثال استجابة

{"ok":true,"verified":true,"verification_token":"<رمز لطلب الوصول اللاحق>"}

رموز الأخطاء

400 VERIFY_FAILEDالرمز أو verification_id أو البريد الإلكتروني غير صحيح/منتهي الصلاحية.

إثبات الاختبار المباشر

الآلية مطابقة لـ forms.product_catalog_verify_email (نفس مكوّن التحقق الأساسي) — تم اختبارها هناك بالكامل برمز حقيقي (نجاح+سلبي)، أما هنا فقد اعتُمدت فقط على نمط الرمز بسبب ضيق الوقت، دون تنفيذها بشكل منفصل برمز خاص بها.

النماذج العامة