| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- nopasswd
- clean architecture
- 이벤트 기반
- spring boot
- 공통 언어
- DTO Projection
- EC2
- event
- 클린 아키텍처
- android studio
- 헥사고날 아키텍처
- 안드로이드 스튜디오
- Rabbit MQ
- Ubiquitous Language
- Spring
- BOJ
- Domain Driven
- rabbitmq
- 헥사고날
- Thymeleaf
- Spring Cloud
- 백준
- CSRF
- Hexagonal Architecture
- Context map
- 컨텍스트 맵
- hexagonal
- JPA
- subdomain
- Domain-Driven
Archives
- Today
- Total
취미겸생업
[Spring boot] Kakao OAuth 소셜로그인 수동 구현 본문
SMALL
카카오 로그인 흐름
- 카카오 로그인 (프론트) → Redirect URI를 통한 인가 코드 획득 (프론트) → 인가 코드를 백엔드에 전달 (프론트) → 인가 코드를 통해 Kakao의 해당 사용자 정보에 대한 Access Token 획득 (백엔드) → 획득한 Access Token을 사용해 해당 사용자의 카카오 정보 획득 (백엔드) → 해당 사용자 정보를 통해 자체 사용자 테이블에 접근하여 서비스 자체의 토큰을 발급하여 로그인을 마침 (백엔드)

카카오 로그인 및 인가 코드 획득 (프론트)
- 카카오 로그인 성공 → Redirect URI를 통해 프론트엔드 CallBack 페이지로 이동 → Parameter를 통해 인가 코드 전달 → 프론트 콜백 페이지를 통해 인가코드에 접근 → 백엔드에 인가 코드 전달

- API : GET https://kauth.kakao.com/oauth/authorize
- Query Parameters
- response_type : 값은 “code”로 고정
- client_id : 앱의 REST API 키 ex) 5f73597241249d81596b31c49547a
- 공개 가능하나 악용 여지가 있으므로 프론트에서 관리하지 않는 것이 좋음
- redirect_uri : Redirect URI, ex) https://some.com/v1/oauth/kakao
- 공개되어도 큰 문제 없음, 관리 잘하면 됨
- Query Parameters
- ex) https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=5f73597241249d81596b31c49547a&redirect_uri=https://some.com/v1/oauth/kakao
인가 코드를 통한 Access Token 발급 (백엔드)
- 인가 코드를 전달 받은 백엔드가 아래 카카오 API를 통해 사용자 정보에 대한 Access Token을 발급
- 접근할 수 있는 사용자 정보는 로그인 시 동의 항목에 따름 (주소나 Email과 같은 개인 정보 포함될 수 있음)
- API : POST https://kauth.kakao.com/oauth/token
- Query Parameters
- grant_type : 값은 “authorization_code”로 고정
- client_id : REST API KEY
- redirect_uri : Redirect URI
- code : 인가 코드
- 공개 x, 유효 기간 짧음
- client_secret : 클라이언트 시크릿 키
- 공개 x
- Query Parameters
- ex)) https://kauth.kakao.com/oauth/token?grant_type=authorization_code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}&code=${AUTHORIZE_CODE}&client_secret=${CLIENT_SECRET}
Access Token 통한 사용자 정보 획득 (백엔드)
- Access Token을 통해 사용자 정보 (Kakao 고유 ID 등) 획득하여 자체 사용자 테이블 조회 및 로그인/회원가입 로직 수행
- GET https://kapi.kakao.com/v2/user/me
- Headers
- Authorization : Bearer ${ACCESS_TOKEN}
- Headers
LIST
'IT > Spring Boot' 카테고리의 다른 글
| [Spring boot] JPA Projection (0) | 2026.04.17 |
|---|---|
| [Spring boot] IntelliJ Thymeleaf Live Reloading (0) | 2026.04.12 |
| [Spring boot] Null과 Builder (0) | 2026.04.01 |
| [Spring boot] Unit Test에 관해 (0) | 2025.04.10 |
| [Spring Boot] 스프링부트 리팩토링 팁 (0) | 2024.09.27 |
