인프런 커뮤니티 질문&답변
OAuthAttributes와 CustomOAuth2User의 차이
작성
·
23
0
OAuthAttributes와 CustomOAuth2User 간의 차이가 궁금합니다.
OAuthAttribute는 google로부터 받은 사용자 정보를 우리가 원하는 대로 확장 가능하게 하는 DTO라고 말씀해주셨고, CustomOAuth2User도 google로부터 받은 데이터 외에 별도의 사용자 정보를 추가하는 용도라고 말씀해주셨는데, 두 설명이 같은 의미처럼 느껴집니다.
두 클래스가 어떤 차이가 있는 건가요?
답변 2
0
온코딩입니다.
OAuthAttributes 클래스는 OAuth2와 연관되어 정의된 데이터이고, 최초에 소셜 로그인 인증서버로 부터 데이터를 받아오는 것입니다.
CustomOAuth2User는 우리 서비스에서 사용하기 편하게 만든 편의 DTO 클래스입니다.
쉽게 얘기해서, OAuthAttributes가 일차적으로 소셜 로그인 인증서버로 부터 데이터를 받아오고,
이 데이터를 기반으로 CustomOAuth2User 클래스로 변환하여 서비스에서 사용합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 박도현님.
OAuthAttributes와 CustomOAuth2User의 차이에 대해 문의주셔서 감사합니다. 두 클래스는 모두 소셜 로그인에서 사용자 정보를 처리하는 데 중요한 역할을 하지만, 각각의 목적과 사용 방식에 약간의 차이가 있습니다:
OAuthAttributes:
- 이 클래스는 주로 OAuth2를 통해 받은 원시 데이터, 즉 소셜 로그인 공급자(예: 구글)로부터 받은 사용자 정보를 처리하는 데 사용됩니다.
- 다양한 소셜 플랫폼에서 로그인할 때 제공하는 사용자 정보의 구조가 다를 수 있기 때문에, 이 클래스는 공통적인 구조로 정보를 변환하는 데 중요한 역할을 합니다. 예를 들어, Google, Facebook 등의 플랫폼에서 각각 다른 형태의 사용자 정보를 제공할 때 이를 공통적으로 사용할 수 있는 구조로 바꿉니다.
- 쉽게 말해서, OAuthAttributes는 소셜 로그인 응답 데이터를 수집하고, 이를 통합된 형태로 변환하는 DTO(Data Transfer Object) 역할을 합니다.
- 이 클래스는 주로 OAuth2를 통해 받은 원시 데이터, 즉 소셜 로그인 공급자(예: 구글)로부터 받은 사용자 정보를 처리하는 데 사용됩니다.
CustomOAuth2User:
- 이 클래스는 UserDetails 인터페이스를 구현하여 Spring Security의 인증 객체로서 작동합니다.
- 사용자 인증이 완료된 후에, 인증된 사용자를 나타내는 객체로 이 사용자 정보를 접근할 수 있게 도와줍니다.
- CustomOAuth2User는 사용자 권한, 사용자 속성 정보를 캡슐화하여 Spring Security의 인증 및 권한 부여 메커니즘과 통합할 수 있게 합니다.
- 이 클래스는 UserDetails 인터페이스를 구현하여 Spring Security의 인증 객체로서 작동합니다.
즉, OAuthAttributes는 원시 사용자를 위한 초기 데이터를 처리하는 데 중점을 두고 있으며, CustomOAuth2User는 이미 인증된 사용자 정보를 보유하고, Spring Security의 인증 흐름과 함께 동작하는 데 중점을 둡니다.
이러한 차이를 이해하면 각 클래스의 역할과 활용 방식을 명확히 구분할 수 있습니다. 관련 경험을 통해 특정 시나리오에서 올바른 클래스를 사용하는 것이 중요합니다.
유사한 질문이나 참고할 만한 기존 답변은 다음 URL에서 확인할 수 있습니다:
- 소셜 로그인 관련 설정 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




