JWT란 json web token이다.
토큰인증 방법에 사용되는 알고리즘이 가장 쉽게 구성 되어 있다. verify하는 과정이 간단하다.
“Header”:{
토큰의 타입, jwt,
해시 알고리즘의 종류,
토큰의 설정(발급자, 만료 시간)
},
“Paylod”:{
토큰에 넣고 싶은 값(아이디, 비번, 이름, 등등 )
},
“Signature”:{
비밀키로 해싱 된 결과
}
$ npm install jsonwebtoken
jwt.sign()는 jwt생성 하는 함수 이다. Sign default 알고리즘은 HMAC SHA256이다.
var jwt = require('jsonwebtoken')
const jwtSecretKey = process.env.JWT_SECRET_KEY//.env파일에
저장된 비밀키
const jwtToken=jwt.sign(
{
//인증 data 정보
"pw": passwordValue,
"id": idValue
},
jwtSecretKey,//비밀키
{
"issuer": "",//token 발행하는 사람
"expiresIn": ""// 종료시간
}
)
verify()로 인증하기
const jwt = require("jsonwebtoken")
const jwtSecretKey = process.env.JWT_SECRET_KEY
//token verify
jwt.verify(pulbicKey, jwtSecretKey)
//publickey-> 프론트엔드에서 보내준 token값
payload로 사용자의 id를 구할 수있다.
//payload
const base64Payload = token_public.split('.')[1]// jwttoken 0번째 header, 1번째 payload, 3번째 서명
const payload = Buffer.from(base64Payload, 'base64')
const result = JSON.parse(payload.toString())