การใช้ JSON Web Tokens (JWT) ใน Koa.js ช่วยในการสร้างและการตรวจสอบ Token สำหรับการรับรองตัวตนผู้ใช้. นี่คือวิธีการใช้ JWT ใน Koa.js:
ติดตั้งแพ็กเกจ
jsonwebtoken
:ใช้คำสั่ง npm เพื่อติดตั้ง
jsonwebtoken
:1
npm install jsonwebtoken
หรือถ้าคุณใช้ Yarn:
1
yarn add jsonwebtoken
สร้าง Middleware สำหรับการสร้าง JWT:
สร้าง middleware สำหรับการสร้าง JWT โดยใช้
jsonwebtoken
:1
2
3
4
5
6
7
8const jwt = require('jsonwebtoken');
// สร้าง JWT จากข้อมูล payload
function createToken(payload) {
return jwt.sign(payload, 'your-secret-key', { expiresIn: '1h' });
}
module.exports = createToken;ในตัวอย่างนี้, เราสร้างฟังก์ชัน
createToken
ซึ่งจะรับข้อมูล payload และสร้าง JWT โดยใช้คีย์ลับ (secret key) และกำหนดเวลาหมดอายุของ Token เป็น 1 ชั่วโมง (expiresIn: '1h'
).สร้าง Middleware สำหรับการตรวจสอบ JWT:
สร้าง middleware สำหรับการตรวจสอบ JWT และดึงข้อมูล payload:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23const jwt = require('jsonwebtoken');
// Middleware สำหรับการตรวจสอบ JWT
function verifyToken(ctx, next) {
const token = ctx.header.authorization;
if (!token) {
ctx.status = 401;
ctx.body = 'Token ไม่ถูกต้องหรือหมดอายุ';
return;
}
try {
const decoded = jwt.verify(token, 'your-secret-key');
ctx.state.user = decoded;
return next();
} catch (err) {
ctx.status = 401;
ctx.body = 'Token ไม่ถูกต้องหรือหมดอายุ';
}
}
module.exports = verifyToken;Middleware
verifyToken
จะดึง Token จาก Header และทำการตรวจสอบ Token โดยใช้คีย์ลับเดียวกับการสร้าง Token. ถ้า Token ถูกต้องและยังไม่หมดอายุ ข้อมูล payload จะถูกเก็บในctx.state.user
สำหรับใช้ในการรับรองตัวตน.ใช้ Middleware สร้างและตรวจสอบ Token:
ในแอปพลิเคชัน Koa.js ของคุณ, ใช้ middleware ที่สร้างและตรวจสอบ Token ตามความต้องการ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24const Koa = require('koa');
const createToken = require('./createToken'); // นำเข้า middleware สร้าง Token
const verifyToken = require('./verifyToken'); // นำเข้า middleware ตรวจสอบ Token
const app = new Koa();
// ตัวอย่างการสร้าง Token
app.use(async (ctx) => {
const payload = { id: 1, username: 'john' };
const token = createToken(payload);
ctx.body = `Token ของคุณคือ: ${token}`;
});
// ตัวอย่างการตรวจสอบ Token
app.use(verifyToken);
// ตัวอย่างการเรียกใช้ Token ใน route อื่น ๆ
app.use(async (ctx) => {
ctx.body = `ยินดีต้อนรับ, ${ctx.state.user.username}!`;
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});ในตัวอย่างนี้, เราใช้ middleware
createToken
เพื่อสร้าง Token และ middlewareverifyToken
เพื่อตรวจสอบ Token ใน route ต่าง ๆ ของแอปพลิเคชัน.
การใช้ JSON Web Tokens (JWT) ใน Koa.js ช่วยให้คุณสามารถดำเนินการ Authentication และการรับรองตัวตนของผู้ใช้ได้อย่างปลอดภัยและมีประสิทธิภาพ คุณสามารถปรับแต่งโค้ดและกฎของการรับรองตัวตนตามความต้องการของโปรเจกต์ของคุณ.