본문 바로가기
ssafy 공통프로젝트

JWT 및 OAuth2 과정 (소셜로그인을 활용한 로그인 구현)

by 펀구구 2023. 8. 6.

https://ksh-coding.tistory.com/59

 

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (3) - JWT 관련 클래

이전에 JWT 정의를 살펴봤다면, 이번에는 JWT 관련 클래스를 직접 생성하여 구현해보려고 합니다! 들어가기 전 JWT 패키지 구조는 다음과 같습니다. JWT 서비스를 생성하기 위해 다음과 같은 오픈

ksh-coding.tistory.com

 

위는 OAuth2 소셜 로그인 동작 과정이다. 본 프로젝트에서는 카카오 소셜 로그인을 도입했다. 카카오에서 사용자 정보를 받아와서 db에 저장하는 데 성공했다. 

OAuth2를 이용해서 로그인을 발급받았으니 서버는 JWT 토큰을 생성해서 client에 보내줘야한다.

JWT 토큰은 다음과 같이 동작한다.

  1. 카카오 로그인을 완료하면 사용자에게 AccessToken과 refreshToken을 발급해준다.
  2. 사용자는 서버에 api요청을 보낼 때 request header에 accessToken을 담아서 보낸다.
  3. 서버에 accessToken을 보냈는데 서버에서 accessToken이 만료됐다고 판단되면 client에 신호를 보내고 client는 refreshToken을 보내서 accessToken을 다시 발급받는다. 그리고 재발급받은 accessToken으로 api 요청을 보낸다.

즉 refreshToken은 accessToken이 만료됐을 때 다시 accessToken을 발급받기 위한 토큰이다.