رموز JWT
توفر رموز JSON Web Tokens (JWT) طريقة آمنة لنقل المعلومات بين الأطراف ككائن JSON.
بنية JWT
يتكون JWT من ثلاثة أجزاء مفصولة بنقاط:
header.payload.signatureالرأس
{ "alg": "HS256", "typ": "JWT"}الحمولة
{ "sub": "1234567890", "iat": 1516239022, "exp": 1516242622}التوقيع
يتم إنشاء التوقيع باستخدام:
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)إنشاء رموز JWT
مثال Node.js
const jwt = require('jsonwebtoken');
const payload = { userId: '12345', scope: ['email', 'contacts']};
const token = jwt.sign(payload, process.env.JWT_SECRET, { expiresIn: '1h', issuer: 'your-app', audience: 'brevo-api'});مثال Python
import jwtimport datetime
payload = { 'user_id': '12345', 'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1), 'iat': datetime.datetime.utcnow()}
token = jwt.encode(payload, 'your-secret-key', algorithm='HS256')استخدام JWT مع Brevo API
curl -X GET "https://api.brevo.com/v3/account" \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \ -H "Accept: application/json"التحقق من صحة الرمز
const validateToken = (token) => { try { const decoded = jwt.verify(token, process.env.JWT_SECRET); return { valid: true, payload: decoded }; } catch (error) { return { valid: false, error: error.message }; }};أفضل الممارسات
- استخدام أسرار قوية وعشوائية
- تعيين أوقات انتهاء صلاحية مناسبة
- التحقق من صحة الرموز في كل طلب
- استخدام HTTPS فقط
- تخزين الأسرار بشكل آمن
- تنفيذ منطق تحديث الرموز