본문 바로가기
  • 개발 / 공부 / 일상
Node.js

(Node.js) jwt

by JJeongHyun 2023. 1. 18.
반응형

jwt

  • JsonWebToken
  • 웹에서 사용하는 JSON 형식의 토큰 (짧은 데이터)
    • JSON은 일종의 데이터 형식
  • JWT : header + payload + signature
    • header : JWT의 검증을 위한 데이터가 저장
    • payload : JWT가 갖고 있는 데이터
      • 발급자(개발자)가 저장하고 싶은 데이터, 주고받아야 할 데이터, 로그인 후의 그 이용자의 닉네임, 암호화된 토큰 등등
    • signature : 암호화된 서명 
      • 검증에 사용

 

header

const tempHeader = JSON.stringify({ name: "block7", alg: "HS512" });
// stringify : 객체를 JSON 형식으로 변환
// alg : 어떠한 알고리즘을 사용하는지
const base64Header = Buffer.from(tempHeader).toString("base64url");
const JWTHeader = base64Header.replaceAll("=", "");

jwt header

 

payload

const tempPayload = JSON.stringify({ maker: "tester", expiresIn: "10m" });
const base64Payload = Buffer.from(tempPayload).toString("base64url");
const JWTPayload = base64Payload.replaceAll("=", "");

jwt payload

signature

const tempSignature = crypto
  .HmacSHA512(
    JWTHeader + "." + JWTPayload,
    "easkurvbesakvubrskveuabraseukbrvlkeuasbrvlkeuasbvr"
  )
  .toString(crypto.enc.Base64url)
  .replaceAll("=", "");

jwt signature

 

const jwt = `${JWTHeader}.${JWTPayload}.${tempSignature}`;

jwt

'Node.js' 카테고리의 다른 글

(Node.js) nodemailer 라이브러리  (0) 2023.08.15
(Node.js) multer  (0) 2023.01.18
(Node.js) fs  (0) 2023.01.17
(Node.js) express & RESTFUL API  (0) 2023.01.17
(Node.js) Port  (0) 2023.01.17