본문 바로가기
프로그래밍/nodejs

[220619] jsonwebtoken 라이브러리 사용방법

by 한코코 2022. 6. 19.

설치 & 세팅

$ 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

 

[220302] JWT란? JWT 만드는법.

JWT(Jason Web Token)란? 1) 토큰이란? 1-1) 일련의 문자열을 구분할 수 있는 단위이자, 시스템에서 보안 객체의 접근 관리에 사용되는 객체 또는 장치다. 1-2) 토큰은 크게 접근(access) 토큰, 보안(security)

hancoco.tistory.com

 

댓글