خدمة JWT في كوكب Kawkab
تقدم خدمة JWT في إطار العمل كوكب Kawkab حلاً متكاملاً لإدارة رموز الوصول (JSON Web Tokens). تتيح هذه الخدمة إنشاء وتحقق وتجديد رموز الوصول بطريقة آمنة وفعالة.
المميزات الرئيسية
- إنشاء رموز وصول ورموز تجديد
- التحقق من صحة الرموز
- تجديد رموز الوصول
- استخراج الرموز من ترويسة التفويض
- إدارة صلاحية الرموز
استخدام الخدمة
1. استيراد الخدمة
import { jwt as JWT } from 'kawkab';
const jwt = new JWT('2h', '1h');
-
اول عامل هو مدة صلاحية رموز الوصول (مثلاً: “2h” يعني 2 ساعات), الافتراضية هي 2 ساعة.
-
ثاني عامل هو مدة صلاحية رموز التجديد (مثلاً: “1h” يعني 1 ساعة), الافتراضية هي 1 ساعة.
-
s: مدة صلاحية رموز الوصول بالثواني
-
m: مدة صلاحية رموز الوصول بالدقايق
-
h: مدة صلاحية رموز الوصول بالساعات
-
d: مدة صلاحية رموز الوصول باليوم
-
w: مدة صلاحية رموز الوصول بالاسبوعات
-
M: مدة صلاحية رموز الوصول بالشهر
-
y: مدة صلاحية رموز الوصول بالسنة
2. إنشاء رموز الوصول
// تعريف بيانات المستخدم
const userData = {
userId: "123",
email: "user@example.com",
role: "admin"
};
// إنشاء رموز الوصول والتجديد
const tokens = jwt.generate(userData);
console.log(tokens);
// النتيجة:
// {
// accessToken: "eyJhbGciOiJIUzI1...",
// refreshToken: "eyJhbGciOiJIUzI1...",
// expiresIn: 86400 // مدة الصلاحية بالثواني
// }
3. التحقق من صحة رمز الوصول
try {
const token = "eyJhbGciOiJIUzI1..."; // رمز الوصول
const payload = jwt.verify(token);
console.log(payload);
// النتيجة:
// {
// userId: "123",
// email: "user@example.com",
// role: "admin"
// }
} catch (error) {
console.error('رمز وصول غير صالح');
}
4. تجديد رمز الوصول
try {
const refreshToken = "eyJhbGciOiJIUzI1..."; // رمز التجديد
const newTokens = jwt.refresh(refreshToken);
console.log(newTokens);
// النتيجة:
// {
// accessToken: "eyJhbGciOiJIUzI1...", // رمز وصول جديد
// refreshToken: "eyJhbGciOiJIUzI1...", // رمز تجديد جديد
// expiresIn: 86400
// }
} catch (error) {
console.error('رمز تجديد غير صالح');
}
5. استخراج الرمز من ترويسة التفويض
try {
const authHeader = "Bearer eyJhbGciOiJIUzI1...";
const token = jwt.extract(authHeader);
console.log(token); // "eyJhbGciOiJIUzI1..."
} catch (error) {
console.error('ترويسة تفويض غير صالحة');
}
أفضل الممارسات
-
تخزين الرموز:
- تخزين رمز الوصول في ذاكرة المتصفح المؤقتة
- تخزين رمز التجديد في مكان آمن (مثل httpOnly cookie)
-
تجديد الرموز:
- تجديد رمز الوصول قبل انتهاء صلاحيته
- استخدام رمز التجديد مرة واحدة فقط
-
الأمان:
- استخدام HTTPS دائماً
- تعيين مدة صلاحية مناسبة للرموز
- عدم تخزين معلومات حساسة في الرمز
إعدادات الخدمة
الخدمة مهيأة مسبقاً بالإعدادات التالية:
- مدة صلاحية رمز الوصول: يوم واحد (
2d
) - مدة صلاحية رمز التجديد: سبعة أيام (
1d
) - المفتاح السري: مشفر ومخزن بشكل آمن
- مفتاح التجديد: مشفر ومخزن بشكل آمن
الخلاصة
توفر خدمة JWT في كوكب Kawkab حلاً شاملاً وآمناً لإدارة رموز الوصول. من خلال واجهة برمجة بسيطة وواضحة، يمكن للمطورين التحكم بشكل كامل في عملية المصادقة وإدارة جلسات المستخدمين.