Back to Home

สร้างระบบ Authentication ใน Express.js ด้วย JWT (JSON Web Tokens)

Backend Developer16 ธันวาคม 2567Security
Express.jsJWTAuthenticationSecurityNode.js

JWT (JSON Web Tokens) เป็นวิธีที่นิยมในการทำ Authentication สำหรับ API

ติดตั้ง

npm install jsonwebtoken bcryptjs

สร้าง Token

const jwt = require('jsonwebtoken'); // User login app.post('/api/login', async (req, res) => { // ... ตรวจสอบ user/password ... const user = { id: 1, username: 'test' }; const token = jwt.sign(user, 'YOUR_SECRET_KEY', { expiresIn: '1h' }); res.json({ token }); });

Middleware สำหรับตรวจสอบ Token

function authenticateToken(req, res, next) { const authHeader = req.headers['authorization']; const token = authHeader && authHeader.split(' ')[1]; if (token == null) return res.sendStatus(401); jwt.verify(token, 'YOUR_SECRET_KEY', (err, user) => { if (err) return res.sendStatus(403); req.user = user; next(); }); }

ปกป้อง Route

app.get('/api/profile', authenticateToken, (req, res) => { res.json(req.user); });

สรุป

JWT เป็นวิธีที่ Stateless และยืดหยุ่นในการทำ Authentication เหมาะสำหรับ Microservices และ Single Page Applications (SPAs)