티스토리 뷰

맙소사! 인증코드와 액세스 토큰에 대한 의문이 조금 남아 있었는데, 오늘 좀 더 윤곽이 드러나는 것 같아 꼭 정리해두고 싶다!

 

 

오늘 글의 주제!

내가 카카오 로그인 API 어떤 거를 사용했고, 인증 코드와 액세스 토큰의 차이와 역할, 전반적인 카카오 로그인 로직을 정리해보자.

 

 

정리 이유

인증 코드와 액세스 토큰은 비슷한 것 같은데 왜 두 번이나 인증을 하는 건지 의문이 생겨서.

카카오 로그인 로직에 대해 더 고화질로? 정리해두고 싶어서.

 

 


 

 

 

인증코드와 액세스토큰

  인증 코드 액세스 토큰
비유 로그인 성공 후 서버에 임시로 주는 비밀번호 같은 것 이 비밀번호를 사용해서 카카오에게 권한 증명 키를 요청함
정의 임시 키
짧은 시간 동안만 유효하고 한 번만 사용 가능함
서버가 이후에 카카오 API를 호출할 때 계속 사용되는 권한 증명 키
일정 시간 후 만료되어 재발급이 필요함
목적과 차이 사용자가 로그인에 성공했다는 것을 증명하는 데 사용
목적: 로그인 성공을 한 번만 확인
이 키를 가지고 있으면
사용자 정보 조회나 카카오 기능을 사용할 수 있음

목적: 카카오 API를 호출할 때마다 "이 사용자는 인증됐어"를 증명
장점 인증코드와 액세스 토큰을 나누면 클라이언트 정보 유출을 예방할 수 있다.
  액세스 토큰으로 다양한 카카오 API를 호출할 수 있다.

 

 

 


 

 

리다이렉트:

다른 곳으로 보내는 것.

어디에 있는 사람 / 요청을 다른 곳으로 이동시키는 것.

사용자가 웹사이트나 페이지를 요청하면 서버가 그 요청을 다른 웹사이트나 페이지로 보내는 방식.

 

 

 

카카오 로그인 흐름 요약

  1. 카카오 로그인 URL로 리다이렉트 2. 인증 코드로 액세스 토큰 요청 3. 액세스 토큰으로 사용자 정보 요청
사용된 카카오 API 카카오 로그인 API:
https://kauth.kakao.com/oauth/authorize
카카오 액세스 토큰 발급 API:
https://kauth.kakao.com/oauth/token
카카오 사용자 정보 API:
https://kapi.kakao.com/v2/user/me
API 요청 방식 GET POST GET
동작 순서 - 클라이언트를 카카오 로그인 API 페이지로 리다이렉트한다

- 이때 REST API KEY와 REDIRECT URI를 API를 로그인 API에 덧붙여서 사용자에게 전달한다

- 사용자가 로그인 페이지에서 로그인을 하면, 카카오 서버가 인증 코드를 생성해서 서버로 리다이렉트(≒전달) 한다
- 서버가 카카오 액세스 토큰 API를 통해 카카오에게 인증 코드와 client_id, client_secret를 보내준다
(쿼리 파라미터로 추가해서 보내준다)

-  카카오가 액세스 토큰을 서버에 반환해준다
- 카카오 사용자 정보 API를 호출하여 headers > Authorization에 발급받은 액세스 토큰을 기입하여 보내준다

- 카카오가 사용자 정보를 JSON 형식으로 반환해준다
이 정보를 userInfoResponse.data로 받게 된다

* userInfoResponse.data 안에는 user의 id와 연결된 시간을 담고 있다

- 거기서 필요한 사용자 정보를 추출하여 변수에 저장한다
사용자 아이디: userInfoResponse.data.id
사용자 닉네임: userInfoResponse.data.kakao_account.profile.nickname
목적 사용자가 카카오 로그인 페이지에 접속하여 로그인을 한 후 인증 코드를 발급 받기 위함.

인증코드를 발급 받으려면 필요한 정보들을 url에 추가하여 보내어 사용자를 리다이렉트하기 위함.
oauth/authorize로 사용자를 보낼 때, client_id(= rest_api_key)랑 redirect_uri 값을 템플릿 리터럴로 생성해주는 역할
서버가 카카오에게 인증코드를 가지고 가서 액세스 토큰을 발급 받기 위함.

인증코드로 한 번만 인증하고, 그 다음부터는 액세스 토큰으로 카카오 API를 통과할 예정.
발급받은 액세스 토큰으로 사용자 정보를 요청하기 위함.
점검 사항     닉네임이 undefined인지 확인하면 좋을 사항

서버

사용자가 카카오 API 페이지로 리다이렉트(이동)되도록 안내하는 역할
이미 존재하는 카카오 로그인 API URL을 사용하지만, 우리에게 맞는 정보를 추가하여 보내줌

- 브라우저를 카카오 로그인 API로 이동
- 인증 코드를 획득하게 도와줌
- 받은 인증 코드로 액세스 토큰 발급을 요청함
- 액세스 토큰을 반환받음
- 받은 액세스 토큰을 사용자 API로 보내줘서 사용자 정보를 반환 받음

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/06   »
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
글 보관함