OAuth2UserService 방식과 직접 요청해서 구현하기

spring security 를 이용해 OAuth2 를 구현할 때,
시큐리티에 내장되어있는 OAuth2UserService<OAuth2UserRequest, OAuth2User> 클래스를 이용해 OAuth2 요청을 구현하는 방식과
RestTemaplte 이나 WebClient 와 같은 HTTP 요청 라이브러리를 이용해 직구현 하는 방식중에 어떤 방식을 더 선호하나요?

OAuth2UserService 를 이용하면 이미 정해져있는 틀로 인해 간편성,보안성에 더 좋다고 생각하는데 HTTP 요청 라이브러리로 직접 프로토콜에 맞춰 커스텀해서 구현하시는 분들도 간혹 있더라고요.

안녕하세요.

Spring security 가 제공하는 OAuth2.0 모듈을 사용하면, 말씀하신 바와 같이 해당 모듈이 기본 제공하는 기능을 바탕으로 구현이나 확장이 용이할 수 있습니다.

다만, 무엇을 따로 선호하지 않고 서비스측 편의에 따라 구성하시면 됩니다.

REST-API 방식의 로그인만을 사용하시는 경우 별다른 이슈는 없겠지만, 만약 JS SDK를 활용한 카카오톡 로그인 기능과 OAuth 2.0의 state 파라미터 활용을 같이 하고자 하신다면, state 파라미터 처리를 위한 커스터마이징을 좀 더 하셔야 합니다.

Spring이 제공하는 구성위에서 구현 하셔도 되며, 말씀처럼 직접 구현 하셔도 됩니다.

개인적으로는 백엔드의 로그인 처리 흐름을 직접 구현하기 보다 Spring이 제공하는 구성위에서 커스터마이징 하는 것을 선호 합니다.