- HttpCookieOauth2AuthorizationRepository
: authorization request를 cookie에 save 및 저장- CustomOauth2Service
: Oauth2Provider로부터 access token을 전달받고, 이를 이용해 user정보를 load할 때 사용
access token을 사용하여 userdetail 정보를 획득
❓❓❓
- 리프레시 토큰은 쿠키에 있고, 엑세스 토큰은 uri로 던짐
- 리프레시 토큰은 백엔드 단에서 쿠키에 저장 (HttpOnly)
- 엑세스 토큰은 프론트엔드 단에서 저장하고 관리해줌
- 방법 1
- Handler에서 cookie에 토큰을 저장해줄 때, HttpOnly 세팅을 잡은 addCookie와 HttpOnly(false) 세팅을 잡은 addCookie 메소드를 각각 2개 만들어주고, 리프레시 토큰과 액세스 토큰을 각각의 방식으로 따로 저장
- 방법2
- 핸들러의 redirect 경로를 바꿔서 소셜로그인 후 queryParam의 형태로 전해진 token을 클라이언트가 볼 수 없는 경로로 전달
: 전달하고 model.attribute를 통해 view로 토큰값을 넘겨줌
- js에서 넘겨받은 토큰값을 쿠키에 저장해줌 (set.cookie) // 이 단계에서 엑세스 토큰이 쿠키에 저장됨!
- ajax 콜을 서버로 보낼 때, Header값에 token을 넣어서 보내줌
(Spring Security)의 filter가 Header의 토큰을 인식, JWT Token을 인증해줌)
척척 할 수 있따 개발 척척 박사