설치 & 세팅
$ npm install jsonwebtoken
const jwt = require('jsonwebtoken');
jwt.sign = 토큰 생성
jwt.sign(payload, secretOrPrivateKey, [options, callback])
payload : 페이로드 값
secretOrPrivateKey : 시크릿키 또는 프라이빗키 = salt
[options, callback] : 필요한 나머지 정보들을 모아서 만든 객체 (예 : 알고리즘, 유효시간, 발급자 정보...)
토큰 생성 : 실사용 예
const jwt = require('jsonwebtoken');
const secreatkey = 'saltRole';
const option = {
algorithm: 'HS256', // 알고리즘
expiresIn: '1h', // 유효시간 1시간, 30분=30m,
issuer: 'server', // 발행자
};
function makeToken(payload) {
//토큰 생성 메소드
// json data, secretkey, [option, callback]
return jwt.sign(payload, secreatkey, option);
}
module.exports = { makeToken };
jwt.verify = 생성한 토큰에서 정보 꺼내서 사용하기
jwt.verify(token, secretOrPublicKey, [options, callback])
payload : 페이로드 값
secretOrPrivateKey : 시크릿키 또는 프라이빗키 = salt
[options, callback] : 필요한 나머지 정보들을 모아서 만든 객체 (예 : 알고리즘, 유효시간, 발급자 정보...)
생성한 토큰에서 정보 꺼내서 사용하기 : 실사용 예
const jwt = require('jsonwebtoken');
const secreatkey = 'saltRole';
const option = {
algorithm: 'HS256', // 알고리즘
expiresIn: '1h', // 유효시간 1시간, 30분=30m,
issuer: 'server', // 발행자
};
//토큰 생성
function makeToken(payload) {
// json data, secretkey, [option, callback]
return jwt.sign(payload, secreatkey, option);
}
// 토큰 인증
function verifyPayload(token) {
return jwt.verify(token, secretKey);
}
// 토큰 디코딩
function decodePayload(token) {
return jwt.decode(token, secretKey);
}
module.exports = { makeToken, decodePayload };
생성한 토큰을 localStorage에 저장하기
window.localStorage.setItem("login_Cookie",jwt_token)
localStorage에서 토큰을 가져오고 검증하기
로컬스토리지에서 데이터를 가져오려고할때 데이터가 존재하면, 검증하는 코드
const cookie = window.localStorage.getItem("login_Cookie");
if(cookie == "" || cookie == null ){
return;
}else{
const tokenDecode = async() => {
const userInfo = decodePayload(cookie)
}
}
localStorage에서 토큰을 가져와서 복호화하기
const cookie = window.localStorage.getItem("login_Cookie");
const decode = decodePayload(cookie)
console.log('디코딩 : ',decode);
자바스크립트에서 하드코딩으로 jwt 만들기
https://hancoco.tistory.com/118
'프로그래밍 > nodejs' 카테고리의 다른 글
FileReader) 파일 프리뷰 만들기 (0) | 2022.08.15 |
---|---|
프로세스간 통신 (0) | 2022.07.07 |
[220331] multer) 비동기적으로 이미지 여러개 업로드하기 (0) | 2022.03.31 |
[220331] multer) 비동기적으로 이미지 1개 업로드하기 (0) | 2022.03.31 |
[220317] socket.io 설치 & 세팅 (0) | 2022.03.18 |
댓글