https://github.com/MungDon/planner-project

**이번 팀플젝에서 회원파트와 소셜 로그인을 담당해서 하게되었습니다.

구글 소셜 로그인은 성공 하였지만 소셜 로그인의 흐름과 코드를 이해하지 못해 
이해하고 넘어가기 위해 작성해보겠습니다.

분석을 들어가기전에 보통 블로그나 깃을보면 다른분들은 

JWT(Json Web Token)와 함께 사용하였지만 

이번에는 소셜로그인 성공하는것이 주요 목적이기에 저는 세션으로 사용했다는 점 참고하길 바랍니다.

구현하다보니 카카오 소셜로그인 시 사업자가 아닐경우 이메일을 받을 수 가 없어 따로 이메일 인증을 구현해 추가정보로 입력받게 되었습니다.** 

소셜 로그인의 동작 흐름

Untitled

제 코드의 동작을 기량 것 만들어 보았습니다…

동작의 흐름을 알아보았으니 이제 코드 분석을 해보겠습니다!

<aside> 💡 소셜 로그인 코드 분석

</aside>

HttpCookieOAuth2AuthorizationRequestRepository.Class

<aside> 👉 이 클래스는 OAuth2 인증 과정에서 승인요청과 관련된 데이터를 쿠키에 저장하는 방식으로 구현한 사용자 정의 클래스입니다.

Spring Security의 AuthorizationRequestRepository<OAuth2AuthorizationRequest> 인터페이스를 구현합니다. → OAuth2 인증 흐름에서 승인 요청을 쿠키에 저장하고, 필요한 경우 이를 불러오거나 삭제하는 기능을 제공합니다.

이 클래스는 Spring Bean 으로 등록되며 , SecurityConfig에서 AuthorizationRequestRepository로 설정됩니다.

</aside>

CustomOAuth2UserService.class

<aside> 👉 Spring Security OAuth 2.0 클라이언트를 사용하여 OAuth 2 인증을 통해 가져온 사용자 정보를 처리하는 방법을 보여줍니다.

CustomOAuth2UserService 클래스는 인증 과정에서 사용자 정의 로직을 추가하고, OAuth 2 공급자(Google)에서 제공하는 사용자 정보를 애플리케이션 내부의 일반적인 형식(OAuth2UserPrincipal)으로 변환하는 역할을 합니다

</aside>