제가 경험했던 OAuth를 정리하기 위해 포스팅합니다.

카카오, 네이버 로그인을 시도해보았고, 차례대로 포스팅하겠습니다.

 

먼저 카카오입니다.

 

우선 kakao developers 페이지에 들어가서 회원가입/로그인을 진행합니다.

그 다음 화면 상단의 "내 애플리케이션"을 클릭하여 들어옵니다.

여기서 "애플리케이션 추가하기"를 누릅니다.

 

정보를 입력하고 저장 버튼을 누릅니다.

본인이 만든 애플리케이션이 추가가 되었으니 들어갑니다.

들어오자마자 앱 키가 뜹니다.

당연히 중요한 키들이니 노출되지 않도록 주의해야 합니다.

여기서 사용할 키는 "REST API 키" 입니다.

키 등록은 SpringBoot에서 할 예정이니 왼쪽 메뉴의 "플랫폼"으로 넘어갑니다.

 

여기서 본인의 프로젝트에 맞는 플랫폼을 등록합니다.

저는 Web을 작성하였습니다.

 

그 다음은 카카오 로그인을 활성화 합니다.

상태가 OFF인데, 눌러서 ON으로 변경합니다.

그 밑에 있는 Redirect URI는 로그인이 성공했을 때 이동할 URI를 작성해주시면 됩니다.

구분은 엔터로해서 최대 10개를 등록할 수 있습니다.

local에서 테스트하는 uri와 배포를 하셨다면 배포uri를 넣어줍니다.

그 다음 동의항목입니다.

애플리케이션에서 사용할 동의항목을 설정합니다.

하지만 카카오계정(이메일)과 같은 중요한 정보는 "필수 동의"가 안되거나 "권한 없음" 설정이 되어있는 항목이 있습니다.

이런 경우에는 "비즈니스 설정 바로가기"에 들어가서 사업자 정보를 등록해야 더 많은 권한을 받을 수 있습니다.

회사에서 진행중인 프로젝트라면 가능하겠지만 학생 또는 교육생이거나 개인 프로젝트에서는 등록하기 어렵다고 볼 수 있습니다.

 

동의항목 설정이 끝났다면 보안으로 넘어갑니다.

Client Secret 코드를 발급 받아 보안을 강화할 수 있습니다.

되도록이면 발급 받는 것을 권장합니다.

토큰 발급을 받았더라면 활성화 상태를 "사용함"으로 변경합니다.

기본값은 "사용안함"입니다.

 

 

그러면 이제 SpringBoot로 넘어갑니다.

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

우선 REST API 요청 관련은 문서를 참고해주시면 됩니다.

 

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

# Maven
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

먼저 OAuth를 위한 의존성을 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
spring:
  security:
    oauth2:
      client:
        provider:
          kakao:
            authorization-uri: https://kauth.kakao.com/oauth/authorize # 카카오 로그인 요청 uri
            token-uri: https://kauth.kakao.com/oauth/token # 토큰을 발급받기 위한 uri
            user-info-uri: https://kapi.kakao.com/v2/user/me # 유저 정보를 받아오기 위한 uri
        registration:
          kakao:
            client-id: # REST API Key
            client-secret: # Client Secret Key
            client-authentication-method: POST
            authorization-grant-type: authorization_code
            redirect-uri: # Redirect URI
cs

그 다음은 yml파일에 필수 정보를 넣어줍니다.

여기 넣은 정보들은 Java 코드에서 아래와 같이 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Value("${spring.security.oauth2.client.registration.kakao.client-id}")
private String kakaoClientId;
@Value("${spring.security.oauth2.client.registration.kakao.client-secret}")
private String kakaoClientSecret;
@Value("${spring.security.oauth2.client.registration.kakao.client-authentication-method}")
private String kakaoAuthenticationMethod;
@Value("${spring.security.oauth2.client.registration.kakao.authorization-grant-type}")
private String kakaoGrantType;
@Value("${spring.security.oauth2.client.registration.kakao.redirect-uri}")
private String kakaoRedirectUri;
@Value("${spring.security.oauth2.client.provider.kakao.authorization-uri}")
private String kakaoAuthorizationUri;
@Value("${spring.security.oauth2.client.provider.kakao.token-uri}")
private String kakaoTokenUri;
@Value("${spring.security.oauth2.client.provider.kakao.user-info-uri}")
private String kakaoUserInfoUri;
@Value("Bearer")
private String tokenType;
cs

 

 

글이 길어질 것 같아서 코드작성 부분은 다음 글에서 다루도록 하겠습니다.

+ Recent posts