JsonWebToken
세 부분으로 구성됨
header.payload.signature
jsonwebtoken jwt.io를 들어가보면
https://jwt.io/
이것저것 만져볼 수 있다.
Node.js 패키지 매니저인 npm을 사용해
npm i jsonwebtoken
으로 설치.
import jwt from 'jsonwebtoken'
으로 불러온다.
jsonwebtoken에서는 sign() 함수를 제공.
예를들어
const token = jwt.sign({ email: "test@user.com" }, "our_secret");
console.log(token);
하면
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAdXNlci5jb20iLCJpYXQiOjE2Nzg5MjAxMjV9.7agGY4Sx7wWY0vZe25tfsrpIcDUHf5N6XP1W3MfxhWI
로 나온다
토큰의 만료시간을 설정하고 싶다면 세번째 인자로 expiresin 옵션을 명시해준다
const token = jwt.sign({ email: "test@user.com" }, "our_secret", {
expiresIn: "1h",
});
나는
const issuedAt = Math.floor(Date.now() / 1000)
const expirationTime = issuedAt + 5400 // 90분
const token = sign(
{
id: checkAccount[0].id,
email: checkAccount[0].email,
department: checkAccount[0].depart,
position: checkAccount[0].position,
iat: issuedAt,
exp: expirationTime,
},
SECRET_KEY
)
이렇게 설정해주고 쓴다.