카카오 로그인 인가코드

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


개발 환경 : 파이썬 / local PC
앱 ID : 457022

[ 코드 ]

rest_api_key = ‘c8330c90aa365888fec3716e1af0694f’
redirect_uri = ‘http://localhost:8889
auth_url = f"카카오계정"

response = requests.get(url, data=data)
tokens = response.json()
print(tokens)

{‘error’: ‘invalid_client’,
‘error_description’: ‘Bad client credentials’,
‘error_code’: ‘KOE010’}

[ 질문 ]

  1. 인가 코드는 매번 새롭게 발급 받아야 할까요?
  2. 위 코드를 실행하여 인가코드를 발급 받고자하는데, 해당 에러가 발생 중입니다.
    api documentation 에 나와있는 가이드는 모두 따라한 상태인데 어떤 것 때문에 오류가 발생 중인 것인지 문의드립니다.

감사합니다.

안녕하세요.

KOE010 오류는 아래 FAQ를 참고 부탁드립니다.

KOE010 (Bad client credentials) 에러가 발생할 때

그리고 인가코드의 경우 성공 실패 여부와 상관없이 단 한번만 사용 가능합니다.
이미 사용된 코드나 존재하지 않는 코드를 사용 시 유효하지 않은 코드로 판단하여 KOE320 오류를 발생 시킵니다.

감사합니다.
output 은 잘 나왔는데요.

{‘props’: {‘pageProps’: {‘pageContext’: {‘commonContext’: {‘locale’: ‘ko’,
‘uaClass’: ‘os_other pc’,
‘responsiveView’: True,
‘responsivePopup’: False,
‘mobile’: False,
‘webview’: {‘app’: ‘web’,
‘webViewType’: ‘none’,
‘appVersion’: ‘’,
‘os’: ‘other’,
‘osVersion’: ‘’,
‘supportFilePicker’: True,
‘supportExecUrlScheme’: False,
‘supportMarketUrlScheme’: True,
‘supportNavigation’: False},
‘supportRefererMetaTag’: False,
‘showHeader’: False,
‘showFooter’: True,
‘linkParams’: {},
‘showDarkMode’: None,
…(이하 생략)

인가 코드 api 설명에는 응답 코드 중 'code’란에 인가코드를 받아올 수 있는 것으로 보여지는데, 해당 응답 결과에는 'code’라는 변수가 따로 존재하지 않는데, 어디서 확인할 수 있을까요?

해당 응답은 카카오에서 전달하는 값이 아닙니다.
인가코드는 redirect_uri에 code 파라미터로 전달됩니다.
(ex, site_redirect_uri/?code=…)

인가코드를 발급받는 api url로 request를 요청한 결과인데, 카카오에서 전달하는 값이 아니라는건가요…?
그럼, 인가코드를 web에서 직접 로그인을 클릭해서 하는게 아니라, 코드 상에서 인가코드를 가져오고 그 이후 access_token을 가져오는 방법은 어떻게 진행해야하나요?

위의 응답 유형은 next.js 에서 사용되는 페이지 프로퍼티로 보이는데요
kauth 주소로 인가코드 요청하신게 맞으실까요?

위 코드로 진행하였습니다.
auth_url 이 카카오 developers 에서 인가코드 받는 예제 api url 을 참고하였습니다.

응답된 내용은 카카오 계정 로그인 페이지의 일부로 보입니다.

카카오 로그인은 브라우저나 카카오톡을 통한 사용자 인증 과정이 필수 입니다.
API 형태로 사용하실 수 없습니다.

파이썬에서 API 테스트 목적이시라면 접근토큰 발급 과정을 구현하지 마시고
다른 경로를 통해 접근토큰을 획득하신뒤 해당 값으로 테스트 진행하시는게 좋을것 같습니다.

xxxxxx

리프래시 토큰을 사용하여 접근 토큰을 갱신하여 사용하실 수 있습니다.

우선 접근토큰과 리프래시 토큰을 확보해 두신 뒤 토큰 만료가 감지 되시면 갱신하여 사용 부탁드립니다.
아래 가이드를 참고 부탁드립니다.

REST API | Kakao Developers REST API - 토큰 갱신하기

감사합니다.
refresh_token을 재갱신하는 limit이 있을까요?
추가로, refresh_token은 현재 받은 토큰을 기준으로 갱신 기간이 지나지 않는 이상 영구적으로 사용이 가능한게 맞을까요?

리프래시 토큰은 2달간 유효하며 접근토큰 갱신 때 만료신간이 1달 이내가 된 경우 같이 갱신되어 전달됩니다.