반응형
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("=", "");
payload
const tempPayload = JSON.stringify({ maker: "tester", expiresIn: "10m" });
const base64Payload = Buffer.from(tempPayload).toString("base64url");
const JWTPayload = base64Payload.replaceAll("=", "");
signature
const tempSignature = crypto
.HmacSHA512(
JWTHeader + "." + JWTPayload,
"easkurvbesakvubrskveuabraseukbrvlkeuasbrvlkeuasbvr"
)
.toString(crypto.enc.Base64url)
.replaceAll("=", "");
const jwt = `${JWTHeader}.${JWTPayload}.${tempSignature}`;
'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 |