개발/Web

[Node.js] jwt토큰 발급과 인증 (jsonwebtoken 라이브러리)

유훈 | Yuhun 2022. 1. 12. 14:22
반응형

jwt로 토큰을 발급해 사용함으로써 사용자 인증을 할 수 있습니다.

여기서는 발급과 인증을 하는 방법을 알아보겠습니다.

 

토큰 발급

jwt.sign(토큰화할 것, 토큰키, 옵션, 콜백 함수 )

 

이제 1분동안 유효한 id 값을 가진 토큰을 생성해 보겠습니다.

const jwt = require('jsonwebtoken');

cosnt tokenKey = '임의의 키 설정' // 물론 실제 개발시에는 따로 숨겨놔야합니다.
const id = 'example_id'

const token = jwt.sign({ id : id }, tokenKey, { {id:id}면 {id}로 축약 가능
				expiresIn: 60, // 1분 유효한 토큰 발급(초 단위)
			});

이제 이 token을 응답으로 넘겨주고 사용하면 됩니다.

 

자 만약 클라이언트에서 토큰을 보내 요청하면 토큰을 해석해 보겠습니다.

const jwt = require('jsonwebtoken');

cosnt tokenKey = '토큰을 만들때 쓴 값'

cosnt token = '요청에서 받아온 token'
const data = jwt.verify(token, tokenKey);

// 이제 data를 클라이언트로 보내서 사용.

토큰이 유효하다면 해석해 만들때 넣은 오브젝트를 반환하고 아니라면 error메세지를 응답합니다.

 

이제 이 토큰을 이용해 사용자의 로그인 상태를 관리할 수 있습니다.

저는 cookie에 저장해 사용할 예정인데 다음 포스팅에서 token을 cookie에 저장해 사용자 인증을 하는 방법을 알아보겠습니다. 

반응형