Spring Boot를 이용하여 OAuth 2.0 KaKao 로그인 구현을 위해 가장 처음 해야할 일들과 간단한 properties 설정을 하려한다.
우선 기본적인 프로젝트 세팅을 하기에 앞서 KaKao Developers라는 사이트에서 필요한 설정들을 진행한 뒤 API key를 발급 받아야 한다. 아래의 과정들을 따라하면 된다.
KaKao Developers
1. 아래 kaKao Developers 사이트에 들어간다.
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
2. 우측 상단의 내 애플리케이션을 클릭한다.
3. 애플리케이션 추가하기를 누른다.
4. 필요한 정보들을 입력한다.
- 앱 아이콘은 추가하지 않아도 된다.
- 앱 이름은 본인이 사용할 어플리케이션의 이름을 자유롭게 적으면 된다.
- 사업자 명은 본인의 이름이나 프로젝트 팀명 등을 자유롭게 적으면 된다.
- 카테고리는 본인의 앱과 가장 유사한 것을 선택하면 된다.
5. 생성된 애플리케이션을 클릭하여 들어간다.
6. REST API 키를 따로 메모장에 적어둔다.
이때 이 REST API 키는 유출되면 안된다! (필자는 해당 블로그 작성 이후 애플리케이션 정보를 삭제했습니다.)
그후 플랫폼 설정하기라는 파란 글자를 누른다.
7. Web 플랫폼 등록
Web 플랫폼 등록을 누른다.
위와 같이 기본적으로 사용할 도메인 주소를 작성했다.
이때 www는 생략하고 작성해야하며, /가 url 마지막에 붙으면 인식이 되지 않음으로 주의하여 작성해야 한다.
8. REST API의 경우 Redirect URI 등록
활성화 상태를 ON으로 바꿔주고, Redirect URI를 설정해준다.
저는 위와 같이 설정해주었습니다. 자세한 사항은 공식문서를 참고하시면 될 것 같습니다.
https://docs.spring.io/spring-security/reference/servlet/oauth2/login/core.html
Core Configuration :: Spring Security
If you are not able to use Spring Boot 2.x and would like to configure one of the pre-defined providers in CommonOAuth2Provider (for example, Google), apply the following configuration: OAuth2 Login Configuration @Configuration @EnableWebSecurity public cl
docs.spring.io
9. 동의항목 설정
왼쪽 제품설정에서 동의항목을 클릭한다.
사용할 항목들을 설정한다.
예전엔 카카오계정(이메일)도 사용가능 했지만 요즘엔 이메일을 동의항목으로 설정하려면 따로 인증을 받아야 한다.
그 건에 대해선 추후 따로 포스팅을 하겠다.
우선 이번엔 기본적인 연습을 위한 프로젝트이니 닉네임만 필수 동의로 받아준다.
동의 화면 미리보기를 통해서 어떤 항목이 활성화 되었는 지 확인할 수 있다.
10. Client secret Key 발급
제품설정 -> 보안에서 코드생성을 누른다.
REST API의 경우 Client Secret 을 발급 받아야 한다.
코드 생성 후 위에서 만든 REST API 키처럼 마찬가지로 메모장 같은 곳에 잊어버리지 않도록 적어둔다.
물론 이 키도 유출되면 절대 안된다!!
이상으로 KaKao Developers에서 해야할 기본적인 설정을 마쳤으니 Spring Boot Properties 설정으로 이어가겠다.
Spring Boot 기본 설정
1. OAuth 2.0 Client 종속성 추가
build.gradle 파일에 아래 종속성을 추가 시킨다.
//oauth 2.0
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
2. application.properties 파일에 설정 추가
#Oauth 2.0 kakao
spring.security.oauth2.client.registration.kakao.client-id=REST API 키
spring.security.oauth2.client.registration.kakao.client-secret=보안 탭에서 생성했던 Client Secret
spring.security.oauth2.client.registration.kakao.authorization-grant-type=authrization_code
spring.security.oauth2.client.registration.kakao.redirect-uri="{baseUrl}/login/oauth2/code/kakao"
spring.security.oauth2.client.registration.kakao.client-authentication-method=POST
//인가코드 받는 항목
spring.security.oauth2.client.provider.kakao.authorization-uri=https://kauth.kakao.com/oauth/authorize
//토큰 받는 항목
spring.security.oauth2.client.provider.kakao.token-uri=https://kauth.kakao.com/oauth/token
//사용자 정보 가져오는 항목
spring.security.oauth2.client.provider.kakao.user-info-uri=https://kapi.kakao.com/v2/user/me
//식별자 항목 -> 카카오는 id를 사용함
spring.security.oauth2.client.provider.kakao.user-name-attribute=id
카카오 공식문서 참고
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-token
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
마무리
KaKao Developers에서 생성한 항목들을 위와 같이 Spring Boot properties에까지 설정 하였다.
다음 포스팅에선 해당 내용을 가지고 어떻게 OAuth 2.0 kakao를 붙이는 지 security와 함께 포스팅 하도록 하겠다.
참고
Spring Boot: OAuth2 kakao 로그인 연동
kakao 🍫
velog.io
'개발 > SpringBoot' 카테고리의 다른 글
[좋은 객체 지향 설계의 5원칙: SOLID] 객체지향과 스프링 (7) | 2024.11.06 |
---|---|
[Spring Boot] OAuth2 연동 중에 생긴 method filterchain in "" required a bean of type "" that could not be found.에러 (1) | 2024.02.09 |
[Spring boot] PropertyReferenceException: No property found for type (2) | 2024.01.30 |
[Spring Boot]org.springframework.beans.factory.BeanCreationException (0) | 2024.01.30 |
[SpringBoot] 커넥션 풀의 이해 (2) | 2024.01.08 |