• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

rest api 에서 OAuth 적용하기 질문입니다.

24.04.30 23:10 작성 조회수 96

0

안녕하세요 선생님

제가 개발해야하는데 강의가 있어서 급하게 결제하고 급하게 강의를 보고 있습니다.

딱맞는 강의를 오픈해주셔서 정말감사합니다.

 

제가 kotlin 으로 rest api 를 개발중인데요

(

front 는 모바일이 별도로 있습니다.

제가 구글및 카카오 연동을해서 front 에 jwt token 을 만들어서 전달 해야하는데요

)

 

Q1. rest api 에서 google 이나 kakao 연동을 하려고 하는데요

implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'

를 받아야할지

implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

둘중 어느것을 받아서 개발 해야하는지 궁금합니다.

 

api 는 spring-starter-oauth2-resource-server 를 써야된다는 글을 봤는데

그러면 yml 에 아래와 같은 설정을 어떻게 하는지?? 가 궁금하더라구요

spring:
    security:
        oauth2:
            client:
                registration:
                    google:
                        client-id: 
                        client-secret: 
                        scope: openid,profile,email

                    naver:

두서없이

질문드려 죄송합니다. ㅜㅜ

 

너무 기초적인 질문을 드려서 죄송합니다.

답변 2

·

답변을 작성해보세요.

0

네 일단 구글및 카카오 연동을 위해서는 spring-boot-starter-oauth2-client 의존성을 받으시면 됩니다.

그리고 전체적인 설명은
섹션 9. OAuth 2.0 Client - Social Login (Google, Naver, KaKao) + FormLogin

에 자세하게 나와 있으니 참고해 주시기 바랍니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.30

안녕하세요, 인프런 AI 인턴입니다. Changsu Woo님의 질문에 대해 도움을 드리고자 합니다.

질문하신 내용은 Spring Boot 프로젝트에서 구글, 카카오 등의 소셜 로그인 OAuth2 연동과 관련하여, spring-boot-starter-oauth2-resource-serverspring-boot-starter-oauth2-client 중 어떤 의존성을 프로젝트에 포함시켜야 할지, 그리고 구성 설정 방법에 대한 내용이 포함되어 있습니다.

이와 관련하여, 정수원 강사님의 “스프링 시큐리티 OAuth2” 강의의 응답 내용이 유사한 질문에 도움이 될 수 있는 정보를 제공하고 있습니다.

질문자님이 언급한 spring-boot-starter-oauth2-clientspring-boot-starter-oauth2-resource-server는 다음과 같은 목적으로 사용됩니다:
- spring-boot-starter-oauth2-client: 소셜 로그인 같은 외부 OAuth2 제공자로부터 인증을 받기 위해 사용됩니다. 예를 들어, 구글이나 카카오 로그인을 구현할 때 사용됩니다.
- spring-boot-starter-oauth2-resource-server: OAuth2를 이용해 보호된 리소스를 호스팅하는 서버에서 사용됩니다. 즉, OAuth2 토큰을 통해 인증된 요청만을 처리하도록 구성된 서버에 해당합니다.

이에, 만약 프론트엔드에서 소셜 로그인을 통해 얻은 정보(예: JWT 토큰)를 이용해 백엔드에서 사용자 인증 정보를 관리해야 한다면, spring-boot-starter-oauth2-client를 사용해 소셜 로그인 인증 절차를 구현하고 이를 통해 얻은 정보를 바탕으로 사용자 인증 처리를 할 수 있습니다. 구성 파일(yml)에서는 각 소셜 서비스 제공자(google, naver 등)의 client-id와 client-secret 정보를 등록하여 OAuth2 인증을 진행할 수 있는 구조를 설정합니다.

아래 링크는 질문하신 내용과 유사한 상황에 대한 답변을 포함하고 있으며, 이를 참고하셔서 프로젝트 설정에 도움을 받으실 수 있을 것입니다.

OAuth 2.0 Social Login 연동 구현 (4)에서는 OAuth2와 JWT를 이용한 인증 방식에 대해 자세히 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

제가 질문을 정확히 하지 않은것 같습니다.

front 에서는 token 값만 가지고 있습니다.

front 는 백앤드로만 연동을하고 직접적으로 front 에서 sns 에 접속을 하진 않습니다.

즉, 백앤드에서만 OAuth 를 사용하여 token 값을 컨트롤 합니다.