[Node.js] JWT

GDORI·2024년 9월 6일
0

Node.js

목록 보기
6/11

JWT가 뭔데..

JWT는 Json Web Token 의 줄임말로 서버, 클라이언트 간 정보를 안전하게 전송할 수 있는 웹 토큰입니다.

header.payload.signature 의 형식으로 3가지 데이터를 포함합니다.

JWT는 비밀 키를 모르더라도 복호화가 가능하기 때문에 민감한 정보를 담지 않도록 주의해야 합니다.
데이터 변조 방지용으로 생각하면 좋을 것 같습니다.

암호화


import jwt from 'jsonwebtoken';

const token = jwt.sign({ myPayloadData: 1234 }, 'mysecretkey');
console.log(token); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJteVBheWxvYWREYXRhIjoxMjM0LCJpYXQiOjE2OTA4NzM4ODV9.YUmYY9aef9HOO8f2d6Umh2gtWRXJjDkzjm5FPhsQEA0

jwt.sign 메서드를 사용하여 JWT를 생성합니다.

복호화


import jwt from 'jsonwebtoken';

const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJteVBheWxvYWREYXRhIjoxMjM0LCJpYXQiOjE2OTA4NzM4ODV9.YUmYY9aef9HOO8f2d6Umh2gtWRXJjDkzjm5FPhsQEA0";
const decodedValue = jwt.decode(token);

console.log(decodedValue); // { myPayloadData: 1234, iat: 1690873885 }

jwt.decode 메서드를 사용하여 JWT를 복호화 합니다.

검증


import jwt from 'jsonwebtoken';

const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJteVBheWxvYWREYXRhIjoxMjM0LCJpYXQiOjE2OTA4NzM4ODV9.YUmYY9aef9HOO8f2d6Umh2gtWRXJjDkzjm5FPhsQEA0";
const decodedValueByVerify = jwt.verify(token, "mysecretkey");

console.log(decodedValueByVerify); // { myPayloadData: 1234, iat: 1690873885 }

jwt.verify 메서드를 사용하여 JWT를 검증 합니다.
JWT 생성 당시 사용하였던 시크릿키와 동일하지 않으면 에러를 발생시키고 동일하면 페이로드에 담긴 정보를 제공합니다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글