لقد قمت للتو بتطبيق مصادقة JWT (JSON Web Token) في واجهة برمجة التطبيقات (API) الخاصة بك. إنها أنيقة، عديمة الحالة، وآمنة. ولكن الآن يأتي الجزء الحاسم: اختبارها بدقة. كيف تتحقق من أن نقاط النهاية المحمية ترفض الطلبات بشكل صحيح بدون رموز مميزة؟ كيف تختبر انتهاء صلاحية الرمز المميز؟ كيف تحاكي أدوار مستخدمين مختلفة؟
إذا كنت تستخدم أوامر curl أو تكتب نصوصًا برمجية لمرة واحدة، فأنت على وشك اكتشاف طريقة أفضل بكثير. يحوّل Apidog اختبار JWT من مهمة روتينية إلى سير عمل مبسط وقوي.
في هذا الدليل، سنتناول بالضبط كيفية اختبار مصادقة JWT في واجهات برمجة التطبيقات باستخدام Apidog، بما في ذلك كيفية تهيئتها، وأتمتة التحقق، وتجنب الأخطاء الشائعة. بالإضافة إلى ذلك، سنغطي جميع طرق المصادقة التي يدعمها Apidog، حتى تعلم أنك مغطى بغض النظر عن تقنياتك.
الآن، دعنا ننتقل إلى كيفية إتقان اختبار مصادقة JWT باستخدام Apidog، واستكشاف مجموعة واسعة من طرق المصادقة التي يدعمها.
لماذا يعد اختبار JWT أمرًا بالغ الأهمية
أصبحت مصادقة JWT المعيار لتأمين واجهات برمجة التطبيقات الحديثة. ولكن مع قوتها تأتي تعقيدات تحتاج إلى اختبار صارم:
- التحقق من الرمز المميز: هل تتحقق واجهة برمجة التطبيقات الخاصة بك بشكل صحيح من توقيع الرمز المميز؟
- حماية نقاط النهاية: هل نقاط النهاية الخاصة بك محمية حقًا بدون رمز مميز صالح؟
- التحكم في الوصول المستند إلى الدور (RBAC): هل تحصل الرموز المميزة المختلفة (ذات المطالبات المختلفة) على مستويات الوصول الصحيحة؟
- انتهاء صلاحية الرمز المميز: هل ترفض واجهة برمجة التطبيقات الخاصة بك الرموز المميزة منتهية الصلاحية بشكل صحيح؟
- معالجة الأخطاء: هل تعيد استجابات واضحة
401 Unauthorizedبرسائل مفيدة؟
يعد الاختبار اليدوي لهذه السيناريوهات باستخدام أدوات سطر الأوامر أو المكونات الإضافية للمتصفح مملًا وعرضة للخطأ. يوفر Apidog نهجًا مركزيًا ومرئيًا ومؤتمتًا للتعامل مع كل هذا.
البدء: إعداد مصادقة JWT الخاصة بك في Apidog

يجعل Apidog تهيئة مصادقة JWT أمرًا بديهيًا. دعنا نقسمه خطوة بخطوة.
الخطوة 1: إنشاء طلب المصادقة الخاص بك
أولاً، تحتاج إلى الحصول على رمز JWT من نقطة نهاية المصادقة الخاصة بك (على سبيل المثال، POST /api/auth/login).
في Apidog، أنشئ طلب POST جديدًا.
اضبط عنوان URL على نقطة نهاية تسجيل الدخول الخاصة بك.
في علامة التبويب Body (الجسم)، أضف بيانات الاعتماد المطلوبة (عادةً JSON مثل {"username": "test", "password": "test"}).
أرسل الطلب. يجب أن تتلقى استجابة 200 OK مع رمز مميز في الجسم، غالبًا ما تبدو كما يلي:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "bearer",
"expires_in": 3600
}
الخطوة 2: استخراج وتخزين الرمز المميز
هنا تكمن قوة Apidog. بدلاً من نسخ الرمز المميز يدويًا لكل طلب، يمكنك أتمتة هذه العملية.
في علامة التبويب Tests (الاختبارات) لطلب تسجيل الدخول الخاص بك، أضف نصًا برمجيًا لاستخراج الرمز المميز من الاستجابة وحفظه كـ متغير بيئة.
// مثال على نص برمجي للاختبار في Apidog
const responseJson = pm.response.json();
// استخراج رمز الوصول (access_token) من الاستجابة
const accessToken = responseJson.access_token;
// تخزينه في متغير بيئة باسم 'jwt_token'
pm.environment.set("jwt_token", accessToken);
قم بتشغيل الطلب. سيقوم Apidog بتنفيذ هذا النص البرمجي وحفظ الرمز المميز في بيئتك النشطة.
الخطوة 3: تهيئة مصادقة حامل JWT (JWT Bearer Auth) لنقاط النهاية المحمية
الآن، لأي نقطة نهاية تتطلب مصادقة JWT (على سبيل المثال، GET /api/users/me):
- أنشئ طلبًا جديدًا لنقطة النهاية المحمية الخاصة بك.
- انتقل إلى علامة التبويب Auth (المصادقة).
- من القائمة المنسدلة Type (النوع)، حدد "JWT Bearer".
هذا هو جوهر الإعداد. تم تصميم نوع مصادقة JWT Bearer في Apidog خصيصًا لهذا المعيار.
- في حقل Token (الرمز المميز)، يمكنك الآن الإشارة إلى متغير البيئة المحفوظ الخاص بك باستخدام الأقواس المعقوفة المزدوجة:
{{jwt_token}}. - عادةً ما يكون حقل Prefix (البادئة) هو
Bearer(وهو المعيار ويطبقه Apidog تلقائيًا لنوع المصادقة هذا).
ماذا يحدث تحت الغطاء؟ عندما ترسل هذا الطلب، يقوم Apidog تلقائيًا بتنسيق رأس Authorization لك:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
لا يلزم التعديل اليدوي للرأس!
سير عمل اختبار JWT المتقدم مع Apidog
1. اختبار انتهاء صلاحية الرمز المميز وتجديده
يجب أن يتحقق الاختبار القوي من كيفية تعامل واجهة برمجة التطبيقات الخاصة بك مع الرموز المميزة منتهية الصلاحية.
- محاكاة انتهاء الصلاحية: يمكنك تغيير متغير البيئة
jwt_tokenيدويًا إلى سلسلة رمز مميز منتهية الصلاحية وإعادة تشغيل طلبات نقطة النهاية المحمية الخاصة بك. يجب أن تُرجع401 Unauthorized. - أتمتة تدفق التحديث: إذا كانت واجهة برمجة التطبيقات الخاصة بك تحتوي على نقطة نهاية لتحديث الرمز المميز (
POST /api/auth/refresh)، فيمكنك إنشاء تسلسل اختبار في Apidog:
- طلب نقطة نهاية محمية باستخدام رمز مميز منتهي الصلاحية (توقع
401). - استدعاء نقطة نهاية التحديث باستخدام رمز التحديث للحصول على
access_tokenجديد. - تحديث متغير البيئة
jwt_tokenتلقائيًا بالرمز المميز الجديد. - إعادة محاولة نقطة النهاية المحمية الأصلية (والآن تتوقع
200 OK).
2. اختبار التحكم في الوصول المستند إلى الدور (RBAC)
اختبر ما إذا كان المستخدم الذي لديه مطالبة "role": "user" لا يمكنه الوصول إلى نقاط نهاية الإدارة.
- إنشاء متغيرات بيئة منفصلة لرموز المستخدمين المختلفة:
{{admin_jwt_token}}و{{user_jwt_token}}. - بالنسبة لنقطة نهاية مخصصة للمسؤولين فقط (على سبيل المثال،
DELETE /api/users/123)، قم بإنشاء حالتين اختبار في Apidog:
- حالة الاختبار أ: استخدم
{{admin_jwt_token}}. المتوقع:200 OKأو204 No Content. - حالة الاختبار ب: استخدم
{{user_jwt_token}}. المتوقع:403 Forbidden.
3. يمكنك تشغيل هذه الاختبارات كجزء من مجموعة اختبار مؤتمتة لضمان فرض منطق RBAC الخاص بك دائمًا.
3. اختبار الرموز المميزة المشوهة أو غير الصالحة
يجعل Apidog من السهل اختبار الحالات القصوى:
- لا يوجد رمز مميز: ما عليك سوى تعطيل أو إزالة تكوين المصادقة لطلب وإرساله. تحقق من حصولك على
401. - رمز مميز مشوه: اضبط متغير
jwt_tokenعلى سلسلة عشوائية مثل"invalid"وأرسل الطلب. يجب أن يُرجع401. - توقيع مُعدّل: يمكنك استخدام أدوات عبر الإنترنت لفك تشفير JWT صالح، وتغيير مطالبة، وإعادة ترميزه بتوقيع خاطئ. احفظ هذا الرمز المميز المُعدّل في بيئتك واختبر به.
ما وراء JWT: النطاق الكامل للمصادقة في Apidog

بينما يعتبر JWT Bearer شائعًا بشكل لا يصدق، تستخدم واجهات برمجة التطبيقات الحديثة طرق مصادقة مختلفة. تكمن قوة Apidog في دعمه الشامل لجميع هذه الطرق في واجهة موحدة واحدة.
1. مصادقة مفتاح API
الطريقة الأبسط والأكثر شيوعًا للاتصال بين الآلات.
- في Apidog: حدد "API Key" من القائمة المنسدلة لنوع المصادقة.
- التهيئة: اختر ما إذا كان المفتاح يذهب في الرأس (على سبيل المثال،
X-API-Key) أو معلمات الاستعلام. أدخل قيمة المفتاح الخاص بك، والتي يمكن أن تشير أيضًا إلى متغير بيئة{{api_key}}.
2. المصادقة الأساسية (Basic Authentication)
مربع حوار اسم المستخدم وكلمة المرور الكلاسيكي، والذي يستخدم غالبًا للأنظمة القديمة أو نقاط نهاية تسجيل الدخول الأولية.
- في Apidog: حدد "Basic Auth".
- التهيئة: أدخل اسم المستخدم وكلمة المرور. يقوم Apidog تلقائيًا بترميزهما بـ base64 ويضيف رأس
Authorization: Basic ....
3. OAuth 2.0
المعيار الصناعي لتفويض المستخدمين والتحقق منهم. هنا يصبح Apidog قويًا بشكل استثنائي.
- في Apidog: حدد "OAuth 2.0".
- التدفقات المدعومة: يرشدك خلال تهيئة تدفق رمز التخويل (الأكثر شيوعًا لتطبيقات الويب)، وتدفق بيانات اعتماد العميل (للتحكم من آلة إلى آلة)، وغير ذلك.
- إدارة الرموز المميزة المؤتمتة: يمكن لـ Apidog التعامل مع عملية OAuth بأكملها، حيث يقوم بإعادة التوجيه إلى خادم التخويل، والتقاط رمز التخويل، وتبادله برمز وصول. ثم يقوم تلقائيًا بإرفاق الرمز المميز بالطلبات اللاحقة كرمز حامل (Bearer token).
4. مصادقة Hawk
نظام أقل شيوعًا ولكنه آمن يستخدم رموز مصادقة الرسائل.
- في Apidog: حدد "Hawk Authentication" واملأ المعرف المطلوب والمفتاح والخوارزمية.
5. توقيع AWS
ضروري لاختبار واجهات برمجة التطبيقات المستضافة على خدمات الويب من أمازون (AWS).
- في Apidog: حدد "AWS Signature".
- التهيئة: أدخل مفتاح الوصول (Access Key) السري الخاص بك لـ AWS، والمنطقة، واسم الخدمة (على سبيل المثال،
execute-api). يقوم Apidog تلقائيًا بحساب وإضافة رؤوس توقيع AWS v4 المعقدة لك.
6. مصادقة Digest
بروتوكول تحدي-استجابة أكثر أمانًا من المصادقة الأساسية.
- في Apidog: حدد "Digest Auth" وقدم اسم المستخدم وكلمة المرور.
يعني هذا النهج الموحد أنه يمكنك اختبار كل نقطة نهاية لواجهة برمجة التطبيقات الخاصة بك، بغض النظر عن طريقة المصادقة الخاصة بها، ضمن نفس المشروع والواجهة.
إنشاء مجموعات اختبار ووثائق قوية
بمجرد قيامك بتهيئة المصادقة واختبار نقاط النهاية يدويًا، يتيح لك Apidog توسيع هذا إلى سير عمل احترافي.
1. إنشاء مجموعات الاختبار
اجمع جميع الطلبات لميزة معينة (على سبيل المثال، "إدارة المستخدمين") في مجموعة. يمكنك تشغيل المجموعة بأكملها بنقرة واحدة، مما يضمن عمل جميع نقاط النهاية المحمية بواسطة JWT بشكل صحيح معًا.
2. تحديد المعلمات بالبيئات
استخدم بيئات Apidog مختلفة (على سبيل المثال، "التطوير"، "التجهيز"، "الإنتاج") لتخزين مجموعات مختلفة من المتغيرات. يمكن أن يشير {{jwt_token}} الخاص بك في بيئة "التطوير" إلى خادمك المحلي، بينما في "الإنتاج" يستخدم بيانات اعتماد حية (ولكن اختبارية). يمكنك تبديل السياقات على الفور.
3. إنشاء الوثائق ومشاركتها
ينشئ Apidog تلقائيًا وثائق API جميلة وتفاعلية من طلباتك. ستعرض هذه الوثائق بوضوح نقاط النهاية التي تتطلب مصادقة JWT Bearer، مما يجعلها واضحة على الفور للمطورين الأماميين أو مطوري الأجهزة المحمولة.
الخلاصة: من الملل إلى التحول
لم يعد اختبار مصادقة JWT بحاجة إلى أن يكون عملية يدوية وهشة. يوفر Apidog حلاً كاملاً ومتكاملاً يتعامل مع دورة الحياة بأكملها: من الحصول على الرموز المميزة، إلى تهيئة المصادقة لنقاط النهاية، إلى بناء مجموعات اختبار مؤتمتة تتحقق من السيناريوهات الإيجابية والسلبية.
يمتد دعمه إلى ما هو أبعد من JWT ليشمل النطاق الكامل لمعايير مصادقة API الحديثة - مفتاح API، الأساسية، OAuth 2.0، والمزيد - كل ذلك ضمن نفس الواجهة البديهية.
من خلال اعتماد Apidog، تنتقل من مجرد التحقق مما إذا كانت واجهة برمجة التطبيقات الخاصة بك تعمل إلى التحقق بثقة من أن نموذج الأمان الخاص بها قوي وموثوق وجاهز للإنتاج. توقف عن نسخ ولصق الرموز المميزة؛ ابدأ في بناء استراتيجية اختبار احترافية ومؤتمتة.
