Spring Security OAuth2 - 카카오
- 선행 과정
Spring Security
기본 설정
JWT
기본 설정
Spring Security OAuth2
기본 과정
카카오 애플리케이션
![](https://velog.velcdn.com/images/appti/post/d0161e10-dfdc-459c-8863-f5ca9c16aca6/image.png)
![](https://velog.velcdn.com/images/appti/post/65a1b40a-8597-41ae-b2d1-b14f7ecf34a7/image.png)
![](https://velog.velcdn.com/images/appti/post/78acd86e-5008-45c1-ac92-5d71b6b9754c/image.png)
![](https://velog.velcdn.com/images/appti/post/b9e86c32-b839-45ef-bc55-aa104fe1a3f4/image.png)
앱 설정 -> 플랫폼
에서 Web 플랫폼
을 등록해줍니다.
- 테스트 용이기 때문에 로컬에서 진행합니다.
![](https://velog.velcdn.com/images/appti/post/1176b46d-5228-4a55-9e66-9ec7214f2c6f/image.png)
제품 설정 -> 카카오 로그인
에서 카카오 로그인 API
를 활성화합니다.
![](https://velog.velcdn.com/images/appti/post/2bd7b323-bf0f-4c6d-a2de-64ab03de04d4/image.png)
제품 설정 -> 카카오 로그인
에서 Redirect URL
을 활성화합니다.
Spring Security OAuth2
의 redirect uri
템플릿은 {baseUrl}/login/oauth2/code/{registrationId}
이므로 이에 맞춰서 작성해줍니다.
![](https://velog.velcdn.com/images/appti/post/64fe9454-cdcc-4e06-a137-6b20093caf3d/image.png)
![](https://velog.velcdn.com/images/appti/post/c5ccc324-dd7a-421d-bb7f-fe080f0c56cf/image.png)
제품 설정 -> 카카오 로그인 -> 동의 항목
을 설정합니다.
- 제 경우
카카오계정(이메일)
은 필수 동의로 하려면 검수가 필요하기 때문에 이를 제외했습니다.
![](https://velog.velcdn.com/images/appti/post/d32412b6-48ca-4449-9040-a0bccc334175/image.png)
제품 설정 -> 카카오 로그인 -> 보안
에서 Client Secret
을 활성화시켜줍니다.
application.yml
spring:
security:
oauth2:
client:
registration:
kakao:
client-id: 앱 설정 -> 앱 키 -> REST API 키
client-secret: 제품 설정 -> 카카오 로그인 -> 보안 -> Client Secret
redirect-uri: http://localhost:8080/login/oauth2/code/kakao
authorization-grant-type: authorization_code
client-authentication-method: POST
client-name: Kakao
scope:
- profile_nickname
- profile_image
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
client
- 카카오 아이디로 로그인 하기 위해 만든 애플리케이션의 정보를 입력합니다.
scope
에 동의 항목 설정을 한 내용을 추가합니다.
provider
Spring Security OAuth2
의 경우 provider
에 대한 정보를 구글과 페이스북만 가지고 있습니다.
- 그렇기 때문에 수작업으로 설정을 해주어야 합니다.
실행
http://localhost:8080/oauth2/authorization/kakao
로 요청합니다.
![](https://velog.velcdn.com/images/appti/post/b2447f22-849b-4f28-9887-9c7e087820af/image.png)
- 동의 항목 설정으로 설정한 내용이 나옵니다.
- 동의하고 계속하기를 눌러 진행합니다.
![](https://velog.velcdn.com/images/appti/post/9e015b86-45aa-4bb1-817f-966e4be628f8/image.png)
- 동의하고 계속하기를 누르면 위와 같이 토큰이 발급되었음을 확인할 수 있습니다.