jwt ใน koa.js

การใช้ JSON Web Tokens (JWT) ใน Koa.js ช่วยในการสร้างและการตรวจสอบ Token สำหรับการรับรองตัวตนผู้ใช้. นี่คือวิธีการใช้ JWT ใน Koa.js:

  1. ติดตั้งแพ็กเกจ jsonwebtoken:

    ใช้คำสั่ง npm เพื่อติดตั้ง jsonwebtoken:

    1
    npm install jsonwebtoken

    หรือถ้าคุณใช้ Yarn:

    1
    yarn add jsonwebtoken
  2. สร้าง Middleware สำหรับการสร้าง JWT:

    สร้าง middleware สำหรับการสร้าง JWT โดยใช้ jsonwebtoken:

    1
    2
    3
    4
    5
    6
    7
    8
    const 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').

  3. สร้าง 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
    23
    const 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 สำหรับใช้ในการรับรองตัวตน.

  4. ใช้ 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
    24
    const 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 และ middleware verifyToken เพื่อตรวจสอบ Token ใน route ต่าง ๆ ของแอปพลิเคชัน.

การใช้ JSON Web Tokens (JWT) ใน Koa.js ช่วยให้คุณสามารถดำเนินการ Authentication และการรับรองตัวตนของผู้ใช้ได้อย่างปลอดภัยและมีประสิทธิภาพ คุณสามารถปรับแต่งโค้ดและกฎของการรับรองตัวตนตามความต้องการของโปรเจกต์ของคุณ.