본문 바로가기
it/nestjs

JWT 순서

by sss24 2023. 2. 16.

클라이언트

1. 로그인 요청

 

3. 로그인 성공

 

4. 인증에 정보가 필요한 요청을 함( 게시글 작성 or 로그인이 필요한 서비스)

     - 담아준 accessToken을 headers['Authorization']에 담아서 요청

headers['Authorization'] = `Bearer ` + localStorage.getItem('accessToken') 

     이런 식으로

 

6.  클라이언트에서 넘어온 요청이 401 에러면, refreshToken으로 유효한 accessToken 요청

 

8. 발급받은 accessToken으로 다시 실패한 요청을 보냄( 5-1번으로 이동)

 

서버

2. accessToken, refreshToken 발급 ( accessToken은 cokkie httpOnly 저장을 위한 3가지 방법)

             1) localStorage

             2) cookie -> XSS CSRF 공격에 취약

             3) private variable

 

5. 클라이언트로부터 받은 accessToken을 parsing(유효한지 아닌지 판단)

     5-1 성공

        return ;

     5-2 실패

        401 UnAuthorized Error 를 클라이언트로 보내줌

 

7. 받은 refreshToken을 parsing accessToken을 만들어서 보내줌

 

** 실패를 하더라도 accessToken을 발급 받을 수 있는 환경이라면 성공한 것처럼 보여줘야 함.

 

-> Interceptor 개념 (성공콜백, 실패콜백)

 

request -> 요청 전

accessToken을 header에 Authorization에 담아놓는다면 좀 더 편하게

 

response -> 응답 전

실패콜백은 6번~8번까지의 과정을 실행하는 것.

'it > nestjs' 카테고리의 다른 글

Nest.JS MQTT 통신 브로커 연결  (2) 2023.05.03
Next.js( react-slick )  (1) 2023.03.23
JWT Token  (0) 2023.02.02
typescript로 날씨 api 가져오기  (0) 2023.01.19
Nest.js 구글 로그인(1)  (1) 2023.01.11

댓글