برمجة

Fetch credentials: لماذا لا تصل كوكي الجلسة إلى API؟

فريق فايندو جروب2 دقائق قراءة0 مشاهدة0 تعليقات
مشاركة:
شاشة أدوات شبكة توضيحية تراجع إعداد credentials وأصل الواجهة وأصل API

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

فرق بين الأصل والموقع

توضح وثائق MDN لاستخدام Fetch أن القيمة الافتراضية credentials هي same-origin، بينما تسمح include بإدراج بيانات الاعتماد في الطلبات عبر الأصول وفق القيود الأخرى. وتظل SameSite وسياسات المتصفح مؤثرة؛ لا تجعل تشابه اسم النطاق بديلًا عن مراجعة الأصل الذي يتحدد بالبروتوكول والمضيف والمنفذ.

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

افحص الطبقات بترتيب ثابت

  1. هل يستخدم الطلب نمط credentials المناسب للتكامل المصرح؟
  2. هل تسمح خصائص الكوكي وسياق المتصفح بإرسالها لهذه الوجهة؟
  3. هل يسمح الخادم بقراءة الاستجابة من أصل الواجهة المحدد؟
  4. هل نجحت المصادقة ثم التفويض للعملية والسجل المطلوبين؟

عند طلب عابر للأصول مع بيانات اعتماد، تشرح الوثائق الحاجة إلى Access-Control-Allow-Credentials وتحديد الأصل صراحة في Access-Control-Allow-Origin بدل النجمة. أما اختبار أداة خارج المتصفح فقد لا يطبق قيود المتصفح نفسها، فلا يكفي نجاحه لاعتماد رحلة الواجهة.

لا تخلط خطأ قراءة الاستجابة بفشل العملية

قد يمنع المتصفح مشاركة استجابة طلب بسيط بسبب CORS مع أن الطلب وصل إلى الخادم. راجع حالة العملية قبل تكرار حفظ أو إجراء ذي أثر. اختيار no-cors لا يحول التكامل إلى مسار صالح لقراءة JSON مصادق؛ يحتاج الفريق عقدًا صحيحًا في الطرفين.

واختبار طلب القراءة وحده لا يغطي التحقق المسبق للطلبات التي تحتاجه أو حماية CSRF عند الكتابة. لا تفتح قائمة الأصول للجميع كي تمر التجربة، ولا تضع مفتاح خادم سريًا داخل كود الواجهة كبديل عن تصميم المصادقة.

اعتمد الرحلة داخل المتصفح

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

التصنيفات:برمجة
شارك:

التعليقات

لا توجد تعليقات بعد

أضف تعليقك

كن أول من يعلق على هذا المقال

02 · تابع القراءة

مقالات ذات صلة