เพชรบล็อก

  • Website Tech Stack

วิธีการใช้ JWT บน Nodejs แบบง่ายๆ

jwt

9 มีนาคม 2565


ติดตั้ง

npm i jsonwebtoken


Import

const jwt = require("jsonwebtoken");


สร้าง secret และ token

const secret = "12345";
const token = jwt.sign({
    username: "somkiat001",
    name: "Somkiat",
    email:"[email protected]"
}, secret, {expiresIn: 5});

payload: ใส่ข้อมูลต่างๆ ของ user ไว้ เราสามารถใส่ข้อมูลประเภท String หรือ Object ก็ได้ครับ
ในตัวอย่างผมใช้ Object และใส่ username ชื่อเจ้าของบัญชี และ อีเมล์ไว้ข้างในครับ
secret: ใช้ในการ verify token
options: ใช้ในการตั้งค่า token เช่นใช้กำหนดวันหมดอายุหรือประเภท Algorithm ครับ



ผลลัพธ์จากการสร้าง token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNv


การตรวจสอบ token

jwt.verify(token, secret, function(err,decoded) {
    if (err) console.log(err);
    else console.log(decoded);
});

token: โทเคนที่เราต้องการตรวจสอบ
callback: ตรงนี้เราจะได้รับค่า err กับ decoded โดยค่า err จะเป็นตัวที่บอกว่า token ใช้งานไม่ได้เพราะอะไร และค่า decoded จะเป็นชุดข้อมูลที่เราใส่ไว้ตอนสร้าง token ครับ


ตัวอย่างค่า err

TokenExpiredError: jwt expired

JsonWebTokenError: invalid signature

ตัวอย่างค่า decoded

{
  username: 'somkiat001',       
  name: 'Somkiat',
  email: '[email protected]',
  iat: 1646760330,
  exp: 1646760340
}

iat: token นี้ถูกสร้างไว้ตอนไหน
exp: token จะหมดอายุตอนไหน


หน้าตาของ Code ทั้งหมด

const jwt = require("jsonwebtoken");

const secret = "12345";

const token = jwt.sign({
    username: "somkiat001",
    name: "Somkiat",
    email:"[email protected]"
}, secret, {expiresIn: 5});

jwt.verify(token, secret, function(err,decoded) {
    if (err) console.log(err);
    else console.log(decoded);
});


สรุป

การใช้ JWT ก็จะมีอยู่ 2 ฟังชันก์หลักๆ นั่นคือ jwt.sign ที่ใช้สร้าง token และฟังชันก์ jwt.verify ที่ใช้ตรวจสอบว่า token

ขอบคุณครับ

ผู้เขียน:

Kiart Tantasi (เพชร)



GitHub:

kiart-tantasi

เพชรบล็อก - [email protected]