사용자 토큰 발급시 koe010 에러

사용자 토큰값을 받기 위해 ajax api를 만들었습니다.

url = “https://kauth.kakao.com/oauth/token

headers = {
‘Content-Type’: ‘application/x-www-form-urlencoded’,
}

data = {
“grant_type” : “authorization_code”,
“client_id” : “REST_API 앱키”,
“redirect_uri” : “http://127.0.0.1:5001/umLogin”,
“code” : “인가코드”

}
response = requests.post(url, headers=headers, data=json.dumps(data))

tokens = response.json()

tokens 값이
{u’error_code’: u’KOE010’, u’error_description’: u’Bad client credentials’, u’error’: u’invalid_client’}

이렇게 나오네요 Client Secret은 비 활성화 되어있습니다.

안녕하세요~
확인을 위해 앱 ID 알려주세요~


앱ID
https://developers.kakao.com/의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다~
ex) 123456

메세지로 보내드렸습니다

인가코드는 1회성인가요?

인가코드 새로 발급 받은(A 인가코드) 즉시 사용자 토큰 요청하니 토큰값이 나오고 예 ) asd

다시 A 인가코드로 사용자 토큰 요청시 {u’error_code’: u’KOE320’, u’error_description’: u’authorization code not found for code=_okFrDcPvkBSu9BOs5JzN9II3by2hgHdGtMHOwIpgHMlXssuzDf9gnBTMCsidCeK0A32wgo9c-sAAAF6vlo6qA’, u’error’: u’invalid_grant’} 이렇게 뜨네요

asd 정보만 들고있으면 되는지 궁금합니다.

넵, 1회성입니다.

로그확인해보니 이미 사용된 인가코드를 재사용해서 KOE320 에러가 발생하고 있네요.

인가 요청으로 발급받은 후, 토큰 요청을 하고
재 요청 시, 인가 요청 부터 시작하도록 구성해주세요.

토큰을 받으셨다면 아래 시간동안 토큰을 이용하여 API 호출 가능합니다.

Android, iOS : 12시간
JavaScript: 2 시간
REST API : 6시간

사용자가 로그인 할때마다
인가 요청 후 발급-> 토큰 요청 후 토큰 발급 해야 하나요?

REST API : 6시간 이라고 하셨는데
인가 발급 후 토큰 요청 api를 계속 하니
인가가 잘못 되었다고 하네요

/oauth/authorize 하시고
리다이렉트 URI 에서 code 받아서 /oauth/token 하시고
다른 API 사용하시다가

다음 번 로그인 시에 /oauth/authorize 부터 하시면됩니다.

현재 에러 발생하는 이유는 /oauth/token 요청을 같은 코드로 두번 하셔서 그렇습니다.

감사합니다 ㅎㅎㅎㅎ

이런 방법이 맞는지 궁금하네요

access_token이 유효 한지 확인 후(v1/user/access_token_info)
유효하지 않을 경우

  • oauth/authorize로 인가 코드 발급 후 -> access_token 재발급
  • access_token로 사용자 정보 확인(v2/user/me)
    유효할 경우
  • access_token로 사용자 정보 확인(v2/user/me)

네, 액세스 토큰 유효성 확인후, 다시 인가 요청 하는 방법도 많이 사용합니다~

이런건 어떠실까요?

카카오 로그인으로 인가 요청->토큰요청-> 사용자 정보 확인 등
액세스 토큰 만료 시간 보다 짧게 사이트 세션 설정하시고
사이트 세션 만료되면 그냥 다시로그인 (로그인이 필요한 페이지 공통부에서 세션만료 체크만)

리다이렉트 URI 에서 토큰 요청 중 에러 발생하면 다시 로그인페이지로이동
유효성 여부를 체크하지 않고 유효한 Flow를 만들고 잘못된 경우 처음부터 다시 진행하는 것도 좋을 것같아요.

답변 너무 감사합니다!!

1개의 좋아요