본문 바로가기
개발 공부

JWT(JSON Web Token)를 공부해보자

by 억만장작 2021. 12. 20.

개요

로그인을 구현하기 위해 항상 거론되는 JWT를 공부해보자.

 

가장 좋은 공부는 공식 홈페이지를 보는 것이다.

https://jwt.io/introduction

공식 홈페이지

 

WEB Session 방식

session을 사용하여 로그인을 구현하는 방식

1. Session에 로그인 정보를 저장하고 그 정보를 이용한다.

2. 로그인을 하면 Session Id가 생성되어 Front End에 쿠키로 전달되고, 그 난수가 Session에 저장된다.

3. 이후 클라이언트의 요청이 있을 때마다 withCredentials 설정을 통해 함께 전달된 쿠키를 Session에 저장된 정보와 확인한다.

4. 이후 확인이 완료되면 DB에서 해당 유저 정보를 가져와 Request의 user에 값을 넣어준다.

 

JWT(JASON Web Token)란?

- JSON으로 만들어진 웹기반 토큰이다.

- OAuth과 개념에 대해서 헷갈리는 경우가 있는데 OAuth는 Token을 이용한 인증방식을 말하는 것이고 JWT는 Token이다.

- 정보가 담긴 데이터( JSON 객체 )를 암호화하여, HTTP 헤더에 추가시킨다.

- 권한을 부여하기 위해 필요한 데이터가 JWT안에 모두 담겨있다.

JWT 토큰을 사용한 request 프로세스

1. JSON 객체에 요구사항을 작성

2. 어떤 암호화 방식을 사용해서 문자열로 인코딩

3. HTTP header에 추가함으로써 사용자 인증을 요청

4. 서버에서는 header에 추가된 token을 디코딩하여 사용자를 인증

JWT를 사용한 로그인

JWT 관리

https://gaemi606.tistory.com/entry/JWT%EB%A5%BC-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%A0%EA%B9%8C


NestJS에서 jsonwebtoken 모듈 사용하기

nest에서 JWT를 사용하기 위해서 jsonwebtoken이라는 모듈을 사용할 수 있다.

JWT를 쉽게 사용하기 위해 사용하는 모듈이며 아래의 예제를 보면 JWT를 통해 로그인을 구현할 수 있다.

 

https://jaeyeon93.github.io/nest%EC%97%90%EC%84%9Cjwt%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0(2)/ 

 

 

로그인 시 토큰 관리

예시

https://cotak.tistory.com/102#--%--Access%--Token%--%--%--Refresh%--Token%EB%-E%--%-F

'개발 공부' 카테고리의 다른 글

쿠키, 세션  (0) 2021.12.20

댓글