카카오 로그인을 웹 서비스에 연동하려면
OAuth 2.0 인증 흐름을 이해하는 것이 가장 중요하다.
카카오 로그인은 단순히
“카카오 계정으로 로그인” 버튼 하나로
끝나는 것이 아니라,
인가코드 → 토큰 → 사용자 정보 조회라는
명확한 단계를 거친다.
이번 글에서는 카카오 로그인 API의
전체 구조와 흐름을 처음부터 끝까지 정리해본다.
1. OAuth 2.0이란?
OAuth 2.0은 “아이디 / 비밀번호를 직접 받지 않고,
카카오 같은 외부 인증 서비스를 통해 로그인하는 표준 방식”이다.
중요한 특징 두 가지
- 우리 서버는 사용자의 비밀번호를 절대 전달받지 않는다.
- 인증은 카카오가 대신 해주고, 인증 결과로 토큰을 발급받는다.
그래서 OAuth 로그인 흐름에는 항상 다음 단계가 등장한다.
- 인가코드 요청
- 인가코드로 토큰 요청
- 토큰으로 사용자 정보 조회
카카오 로그인도 이 구조 그대로 따라간다.
2. 인가코드(Authorization Code)란?
카카오 로그인 과정에서 가장 먼저
등장하는 것이 바로 “인가코드”이다.
인가코드는 로그인을 정상적으로
완료했다는 것을 증명하는 일회용 인증 코드다.
특징은 다음과 같다.
- 한 번만 사용 가능
- 매우 짧은 시간 동안만 유효
- 토큰을 발급받기 위한 임시 인증 코드
즉, 이 코드를 가지고 다음 단계에서
액세스토큰(access_token) 을 발급받게 된다.
3. 인가코드 요청하기 (로그인 버튼)
사용자가 카카오 로그인을 클릭하면,
아래 URL로 이동하여 인가코드 요청이 발생한다.
<a href="https://kauth.kakao.com/oauth/authorize?client_id=
REST_API_KEY&redirect_uri=REDIRECT_URL&response_type=code">
카카오 로그인
</a>
사용된 각 파라미터의 의미는 다음과 같다.
| 항목 | 설명 |
| client_id | 카카오 REST API 키 |
| redirect_uri | 카카오 로그인 성공 후 되돌아올 URL |
| response_type=code | 인가코드 방식 사용(OAuth 표준) |
즉, 이 로그인 버튼을 클릭하는 순간
우리 서비스 → 카카오로 인가코드 요청이 발생한다.
4. 인가코드 수신 (redirect_uri)
사용자가 카카오 인증을 정상적으로 완료하면
카카오는 redirect_uri로 아래처럼 redirect를 보낸다.
http://localhost:8080/kakao/callback?code=abc123xyz
여기에서 'code=abc123xyz'
이 값이 바로 인가코드이다.
이제 서버는 이 코드로
토큰을 발급받을 수 있다.
5. 인가코드로 액세스토큰 요청하기
서버는 받은 code 값을 이용해
카카오에 POST 요청을 보낸다.
POST https://kauth.kakao.com/oauth/token
필수 파라미터
- grant_type=authorization_code
- client_id=REST_API_KEY
- redirect_uri=REDIRECT_URL
- code=인가코드
요청에 성공하면 카카오가 아래와 같은 JSON을 반환한다.
{
"access_token": "액세스토큰",
"refresh_token": "리프레시토큰",
"expires_in": 21599
}
여기서 가장 중요한 값은 access_token이다.
액세스토큰 = 카카오가 인증해준 사용자 신원을 증명하는 토큰
6. 액세스토큰으로 사용자 정보 조회
토큰을 발급받았다면 이제 사용자 정보를 요청할 수 있다.
GET https://kapi.kakao.com/v2/user/me
Authorization: Bearer 액세스토큰
성공하면 다음 정보들을 얻을 수 있다.
- 카카오 고유 ID
- 닉네임
- 프로필 이미지
- 이메일(동의받은 경우에 한함)
이제 이 데이터를 기반으로
회원가입 또는 로그인 처리를 진행하면 된다.
7. 전체 흐름 한눈에 보기
카카오 로그인은 아래 흐름대로 진행된다.
[사용자] ---- 카카오 로그인 버튼 클릭
↓
[카카오] ---- 로그인 인증 → 인가코드 발급
↓ redirect_uri
[서버] ---- 인가코드로 액세스토큰 요청
↓
[카카오] ---- 액세스토큰 발급
↓
[서버] ---- 액세스토큰으로 사용자 정보 조회
↓
[내 서비스] ---- 회원가입 또는 로그인 처리
핵심은 인가코드 → 토큰 → 사용자 정보 이 3단계이다.
[ 최종 정리 ]
카카오 로그인은 단순히 REST API 호출이 아니라
표준 OAuth 2.0 인증 절차를 그대로 따르는 구조로 되어 있다.
- 인가코드는 로그인 인증 결과를 담은 1회용 인증 코드
- 토큰은 사용자 신원을 증명하는 핵심 열쇠
- 사용자 정보 요청을 통해 우리 서비스의 계정으로 연결
- 전체 흐름은 누구나 이해할 수 있을 만큼 단순하고 일관됨
이번 포스팅에서는 구현하기 전에
알아야 할 개념과 흐름을 정리해보았는데
코드를 실제로 구현하기 위해서는 다양한
카카오 디벨로퍼 사전 세팅이 필요하다.
구현에 필요한 개념과 사전 세팅을
참고할 수 있는 블로그 링크도 함께 소개한다.
https://innovation123.tistory.com/291
카카오 로그인 API 사용 방법 - 2025 ver (Java, Spring)
이 글은 과거(2023년 10월) 작성했던 글을 현재(2025년 12월)을 기준으로 리뉴얼 한 글이다.과거와 비교했을 때 달라진 점은 크게 없고, kakao에서 마이그레이션을 잘 해줘서 문제없지만, 사소하게 달
innovation123.tistory.com
'개주 훈련일지 > 🏋️ 전집중 호흡 훈련' 카테고리의 다른 글
| CKEditor5 기초 가이드 (0) | 2025.12.12 |
|---|---|
| Java로 이메일 발송 구현하기(Gmail SMTP 사용) (0) | 2025.12.11 |
| 카카오페이 API 단건 결제 방법 정리 (0) | 2025.12.05 |
| 간단한 용어 정리 - 프론트 / 백 (0) | 2025.12.02 |
| 별점 리뷰 기능 구현하기 (플러그인 활용) (0) | 2025.11.29 |