BE전문가 프로젝트

6-1 OAuth 2.0 - 사전 설정 본문

SpringBoot Security

6-1 OAuth 2.0 - 사전 설정

원호보고서 2023. 8. 6. 15:19

카카오톡 OAuth2.0 설정

1. 앱 등록

애플리케이션 추가하기를 클릭하여 애플리케이션을 생성한다.

 

2. 로그인 기능 활성화

활성화 설정 ON을 클릭하여 로그인  API를 활성화한다.

 

3. Redirect URI 등록

OAuth 로그인 요청 승인 후 사용자에게 다시 보낼 URI를 작성한다.

이때 Path를 반드시 /login/oauth2/code/{registrationId}로 등록해야한다.

(해당 이유는 다음 포스팅(6-5 OAuth2.0 - 필터 생성 및 SecurityConfig 수정)을 찾아보기 바람)

 

4. 플랫폼 설정

API를 사용할 도메인을 등록해준다. 필자의 경우 Web에서만 사용할 것이기 때문에 Web만 선택해주었다.

 

5. yml설정

spring:
  security:
    oauth2:
      client:
        registration:
          kakao:
            client-id: xxx
            client-secret: xxx
            redirect-uri: http://localhost:8080/login/oauth2/code/kakao
            client-authentication-method: POST
            authorization-grant-type: authorization_code
            scope: profile_nickname, profile_image
            client-name: Kakao
        provider:
          kakao:
            authorization-uri: https://kauth.kakao.com/oauth/authorize
            token-uri: https://kauth.kakao.com/oauth/token
            user-info-uri: https://kapi.kakao.com/v2/user/me
            user-name-attribute: id

위에 설정한 yml파일에 있는 정보들은 로그인 요청시에 파리미터 값으로 들어가게 된다.

https://kauth.kakao.com/oauth/authorize?
scope=profile_nickname%20profile_image
&response_type=code
&state=i4qsJEmY2ROUDtyDWJj-nsvVMuqI07ogmyvBMYmOX1M%3D
&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Flogin%2Foauth2%2Fcode%2Fkakao
&client_id= xxx

 

Google OAuth2.0 설정

1. 새 프로젝트 생성

2. OAuth 동의화면 구성

3. 앱 등록 수정

#1 OAuth 동의 화면

  • 앱이름
  • 사용자 지원 이메일
  • 개발자 연락처 정보

#2 범위 선택

#3 테스트 사용자

추가 없음

#4 요약

지금까지 선택한 정보들 맞는지 확인

 

4. API 생성

  1. 왼쪽 메뉴에 사용자 인증 정보 클릭 
  2. 사용자 인증 정보 만들기 클릭
  3.  OAuth 클라이언트 ID 클릭

5. API 정보 입력

리디렉션 URI에 카카오와 마찬가지로 Path를 반드시 /login/oauth2/code/{registrationId}로 등록 (위의 설명 참고)

 

6. 생성된 API 클라이언트 ID 및 secret 생성 확인

7. yml설정

spring:
  security:
    oauth2:
      client:
        registration:
          kakao:
            client-id: xxx
            client-secret: xxx
            redirect-uri: http://localhost:8080/login/oauth2/code/kakao
            client-authentication-method: POST
            authorization-grant-type: authorization_code
            scope: profile_nickname, profile_image
            client-name: Kakao
          google:
            client-id: 568401436163-8nbjo5jo1djfqtl4h8dl9fpqaa4bfb5p.apps.googleusercontent.com
            client-secret: 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
            scope: profile, email
          
        provider:
          kakao:
            authorization-uri: https://kauth.kakao.com/oauth/authorize
            token-uri: https://kauth.kakao.com/oauth/token
            user-info-uri: https://kapi.kakao.com/v2/user/me
            user-name-attribute: id

Kakao와 달리 Google은 스프링에서 Google의 정보를 제공하기 때문에 따로 Provider의 정보를 입력하지 않아도 된다.

 

 

Comments