توليد توكن JWT موقّع
أداة تُصدر توكن JWT موقّعًا: تُدخل البيانات التي تريد تضمينها — كهوية المستخدم وصلاحياته وتاريخ الانتهاء — ومفتاحًا سرّيًا، فتولّد الأداة توكنًا جاهزًا موقّعًا بخوارزمية HMAC، يستخدمه المطورون لاختبار منطق مصادقة أو إصدار توكنات مباشرة.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
متى تحتاج إصدار توكن يدويًا
عند اختبار نظام يتوقع توكن JWT صالحًا في ترويسة كل طلب، لا حاجة لبناء مسار تسجيل دخول كامل فقط لتجربة نقطة نهاية واحدة. تولّد الأداة توكنًا صالحًا خلال ثوانٍ ببيانات تحددها أنت، فتستخدمه مباشرة في اختبار يدوي أو في مجموعة اختبارات آلية دون المرور بخطوات المصادقة الفعلية.
البيانات التي تضعها داخل التوكن
تُدخل الحقول التي يحتاجها نظامك: معرّف المستخدم، دوره أو صلاحياته، وتاريخ الانتهاء exp بصيغة الطابع الزمني epoch. تولّد الأداة الترويسة تلقائيًا وتحسب التوقيع من هذه البيانات ومفتاحك السرّي، فينتج توكن جاهز للنسخ يحمل بالضبط البنية التي يتوقعها نظامك دون أي حقل زائد.
اختيار خوارزمية التوقيع
تدعم الأداة خوارزميات HMAC الشائعة مثل HS256، المناسبة حين يشترك طرفا التكامل — المُصدِر والمُتحقق — في المفتاح السرّي نفسه. يختار المطور الخوارزمية التي يتوقعها النظام المستهدف، فيتطابق التوكن المولَّد مع منطق التحقق الموجود فيه دون تعديل إضافي.
إصدار آلي عبر الـAPI
لنظام يحتاج إصدار توكنات لمستخدمين جدد باستمرار — كخدمة تسجيل دخول داخلية — يتيح الـAPI إصدار التوكن برمجيًا بسعر $0.002 لكل توكن، فيدمج المطور الإصدار مباشرة في منطق تسجيل الدخول الخاص بنظامه دون بناء منطق التوقيع بنفسه.
حالات الاستخدام
اختبار نقطة نهاية محمية دون تسجيل دخول كامل
يختبر مطور في شركة الخليج الرقمية نقطة نهاية جديدة تتطلب توكن صالح، فيولّد توكنًا تجريبيًا ببيانات مستخدم وهمي بدل بناء مسار تسجيل دخول كامل فقط للاختبار.
إصدار توكنات لخدمة داخلية بسيطة
يبني فريق تقني في مؤسسة النخيل للمقاولات خدمة داخلية صغيرة بين موظفين، ويصدر توكنات JWT عبر الـAPI لكل جلسة دون بناء نظام مصادقة كامل من الصفر.
محاكاة أدوار مستخدمين مختلفة في الاختبار
تختبر سارة النعيمي كيف يتصرف تطبيقها مع مستخدم مدير ومستخدم عادي، فتولّد توكنين بصلاحيات مختلفة وتقارن سلوك النظام مع كل منهما.
الأسئلة الشائعة
هل يمكن استخدام التوكن المولَّد في نظام إنتاجي فعلي؟
نعم إن كان المفتاح السرّي الذي أدخلته هو نفسه الذي يتحقق به نظامك؛ الأداة تولّد توكنًا صالحًا تقنيًا بغض النظر عن بيئة الاستخدام.
هل تحفظون المفتاح السرّي الذي أدخله؟
لا، المفتاح يُستخدَم لحساب التوقيع فقط في لحظة الطلب ولا يُخزَّن بعدها في أي مكان.
ما خوارزميات التوقيع المدعومة؟
خوارزميات HMAC الشائعة مثل HS256، وهي الأنسب حين يشترك المُصدِر والمُتحقق في المفتاح السرّي نفسه.
كم تكلفة إصدار توكن عبر الـAPI؟
$0.002 لكل توكن؛ الإصدار اليدوي من المتصفح لتوكن أو عدة توكنات للاختبار يبقى مجانيًا.
هل يمكن تحديد تاريخ انتهاء مخصص للتوكن؟
نعم، تضع حقل exp بالطابع الزمني الذي تريده، وتحسب الأداة التوقيع على أساس القيمة التي أدخلتها بالضبط.
هل تعمل الأداة من الجوال؟
نعم، صفحة ويب عادية تعمل من متصفح الجوال بنفس الطريقة على الحاسوب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/jwt-sign \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/jwt-sign", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/jwt-sign",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/jwt-sign", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/jwt-sign", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"items": [
"valor-1",
"valor-2"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.jwt_sign",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |