חולמים על קריירה בהייטק?
בדקו את הקורסים שלנו:
מה זה JWT?
מה זה JWT?
JSON Web Token (או בקיצור JWT) הוא פורמט נפוץ ומאובטח להעברת מידע בין שני צדדים בצורה מוצפנת. JWT מאפשר להבטיח את שלמות המידע ואת האימות שלו, והוא משמש רבות באפליקציות מודרניות לצורך אימות זהות, ניהול הרשאות, והעברת מידע רגיש.
איך JWT עובד?
JWT מורכב משלושה חלקים עיקריים:
כל החלקים הללו מקודדים בפורמט Base64 ומחוברים בנקודות (".") ליצירת הטוקן הסופי. לדוגמה:
1
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvbiBEb2UiLCJhZG1pbiI6dHJ1ZX0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
שימוש בסיסי ב-JWT
כדי להבין איך JWT עובד, נראה דוגמה פשוטה ב-JavaScript בעזרת הספרייה jsonwebtoken.
1
2
// התקנת הספרייה
npm install jsonwebtoken
הנה דוגמה ליצירת JWT:
1
2
3
4
5
6
7
8
9
10
11
const jwt = require('jsonwebtoken');
const payload = {
userId: 123,
role: 'admin'
};
const secret = 'mySecretKey';
const token = jwt.sign(payload, secret, { expiresIn: '1h' });
console.log('Token:', token);
כאן אנחנו יוצרים טוקן עם מידע על המשתמש, הכולל מזהה והרשאה, והטוקן יפוג לאחר שעה אחת.
כדי לאמת טוקן בצד השרת, נשתמש בקוד הבא:
1
2
3
4
5
6
try {
const decoded = jwt.verify(token, secret);
console.log('Decoded Payload:', decoded);
} catch (err) {
console.error('Invalid Token');
}
מתי כדאי להשתמש ב-JWT?
JWT שימושי במקרים רבים, לדוגמה:
אימות משתמשים: לאחר שהמשתמש מתחבר, השרת יוצר JWT ושולח אותו ללקוח. הלקוח שומר את הטוקן (לדוגמה ב-localStorage או ב-cookie) ומשתמש בו כדי לאמת בקשות עתידיות.
העברת מידע רגיש: JWT יכול לשמש להעברת מידע בצורה בטוחה, כל עוד הוא מוצפן וחתום.
אפליקציות מבוססות API: JWT נפוץ באפליקציות RESTful, שבהן יש צורך לאמת כל בקשה שמגיעה לשרת.
דוגמה לשימוש ב-JWT עם Express
JWT משתלב בצורה טבעית עם Express. הנה דוגמה לשימוש בטוקנים לצורך אימות:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();
const secret = 'mySecretKey';
// Middleware לאימות JWT
function authenticateToken(req, res, next) {
const token = req.headers['authorization'];
if (!token) return res.status(401).send('Access Denied');
try {
const decoded = jwt.verify(token, secret);
req.user = decoded;
next();
} catch (err) {
res.status(403).send('Invalid Token');
}
}
app.get('/protected', authenticateToken, (req, res) => {
res.send('This is a protected route');
});
app.listen(3000, () => console.log('Server running on port 3000'));
בקוד זה, middleware בודק אם הטוקן תקף לפני שמאפשר גישה לנתיב מוגן.
לימוד נוסף
JWT הוא כלי רב עוצמה, אך כמו כל כלי, חשוב לדעת להשתמש בו נכון ולהבין את מגבלותיו. אם אתם רוצים להעמיק בנושא, הנה כמה מקורות נוספים:
לסיכום
JWT הוא כלי חשוב לכל מפתח ווב מודרני. הוא מציע דרך פשוטה ומאובטחת להעברת מידע, תוך שמירה על אימות ושלמות המידע. בין אם אתם משתמשים בו לאימות משתמשים או לאבטחת API, JWT מהווה סטנדרט מוביל בעולם הפיתוח.
הצטרפו לאתר קודבוקס והתחילו ללמוד תכנות לבד.
אין צורך בידע מקדים, לומדים לתכנת מאפס.
פלטפורמת תכנות המוטמעת בדפדפן שתבדוק את הקוד שלכם בזמן אמת.
קודי, מורה הבינה המלאכותית של אתר קודבוקס שיעזור לכם בפתרון שאלות הקוד באתר.
צוברים מטבעות קודבוקס במהלך הלמידה,
