[데이터 분석 웹 서비스 프로젝트] 22.04.21 DAY-3

garaming·2022년 4월 21일
0

[어? 이게 되네??팀] 일일회고

어제 한 일

  • about page / login & loginForm page / intro page / board game page - UI 디자인 설계 @프론트엔드

issue

Refresh Token 사용!

refresh token의 사용에 대해서 논의해보았다. 백엔드 영역이긴 하지만, 이전 프로젝트에서는 access token만 사용해서 이번에는 프론트에서 처리 해줘야하는 부분이 생기기 때문에 공부가 필요하다..!

JWT이란?

내가 jmt..ㅎ 라고 부르는 JWT는 클라이언트와 서버 사이 통신시 권한을 인가하기 위해 사용하는 토큰이다.

위 그림은 acess token만을 이용했을 시 클라이언트와 서버간의 서버 인증 방식이다. 먼저 사용자가 로그인을 하면 사용자를 DB에서 확인 절차를 거쳐 access token(JWT)를 발급한다.

이렇게 발급한 토큰은 클라이언트에게 반환되며, 데이터를 요청할 때 마다 토큰을 헤더에 넣어 보낸다. 서버는 다시 토큰을 검증하고 응답을 보내주는 프로세스다. 이때 만약 토큰이 유효하지 않거나 만료되었다면 새로 로그인하여 토큰을 발급받아야 한다.

access token만을 이용한 인증 방식은 토큰을 탈취당했을 때 막을 방법이 없다. 그렇기에 대부분 토큰의 유효기간을 30분 정도로 설정해준다. 하지만, 기간을 또 짧게 설정해버리면 로그인을 자주해야하는 단점이 발생한다. 그렇다면 이를 어떻게 해결할 것인가!!!

Refresh Token

바로 refresh token를 사용한다. refresh token은 access token 보다 긴 유효기간을 가지며, access token이 만료되었을 때 새로 발급을 해주기 위한 토큰이다. 그래서 보통 refresh token의 유효기간을 2주정도로 정한다.

refresh와 access token을 사용하는 방법은 위와 같다.
refresh token의 장점은 access token만을 사용했을 때보다 안전하다는 것인데, 그 이유는 그림(12)와 같이 access token과 refresh token을 모두 검증 한 후에 토큰을 반환해주기 때문이다. 이렇게 하면 토큰 탈취도 해결할 수 있다!

오늘 할 일

  • refresh token를 추가하여 발생하는 코드 구현 생각해보기!
  • 프론트엔드 오피스아워 이슈 작성하기!
  • UI 디자인 설계
profile
Connecting the dots

0개의 댓글