KOE320 (An authorization code must be supplied, authorization code not found) 에러가 발생할 때

KOE320

KOE320에러는 토큰 받기 API 호출 시, 동일한 인가 코드를 두 번 이상 사용하거나, 이미 만료된 인가 코드를 사용한 경우, 혹은 인가 코드를 찾을 수 없는 경우 발생합니다.

* 인가 코드를 파라메터로 전달하지 않은 경우
{"error":"invalid_request",
"error_description":"An authorization code must be supplied.",
"error_code":"KOE320"}

* 이미 사용(만료)된 인가코드를 재사용 한 경우
{"error":"invalid_grant",
"error_description":"authorization code not found for code=xNey_oPAr4XUOj8TNkSEp0xYUT6q_qLwJcgfdeNMX8Eh-EwHqHMN1tdKzyXK0IC1ySexoAoqJZAAAAGFUyG0bw",
"error_code":"KOE320"}

* 인가코드 파라메터에 잘못된 값을 전달한 경우 
{"error":"invalid_grant",
"error_description":"authorization code not found for code=null",
"error_code":"KOE320"}

해결책

액세스 토큰 요청 시, 매번 새로운 인가 코드를 사용해야 합니다. 인가 코드를 다시 발급한 후, 새로 발급받은 인가 코드로 액세스 토큰을 요청합니다.

자주하는 실수

(1) 인가 코드 받기 이후, 리다이렉트 URI에서 액세스 토큰 발급 으로 로그인 또는 가입 처리 후, 필요한 서비스페이지로 이동해야하나 리다이렉트 URI에 머물러 사용자가 새로고침할 수 있는 경우

이미 사용된 인가 코드를 이용한 토큰 발급 요청을 다시 시도하게 되어 에러 발생

(2) 리다이렉트 URI에서 리다이렉트 URI로 재진입 또는 리다이렉트 처리하도록 잘못 구현한 경우

(3) 시스템 에러 Retry로직을 잘못 구현하여 서비스 로그인 또는 가입 로직에 오류발생 시, 액세스 토큰 발급 부터 재처리 하는 경우

(4) 인가 코드를 받지 못한 상황에서 예외 처리 없이 토큰 발급 요청을 해버리는 경우

인가 코드를 발급 받지 못하는 상황은 다음과 같습니다.
리다이렉트 URI에서 토큰 발급 API호출 시, code파라메터로 값을 받았는지 확인하고 호출해야합니다.

  • 사용자가 동의창에서 동의 취소를 하는 경우
  • 카카오 싱크 14세 미만 가입 불가 설정된 앱에서 14세 미만이 로그인 한 경우
  • 인가요청 시, 지원되지 않는 파라메터를 사용한 경우 ex) auto_login=true
  • 앱에 가입되지 않은 사용자가 카카오톡에서 자동로그인( prompt=none 파라메터 사용)으로 진입 시, consent_required : user consent required.가 내려갑니다.

카카오톡에서 자동로그인( prompt=none 파라메터 사용)과 JS SDK의 간편 로그인은 다른 기능입니다.