전자정부표준프레임워크

표준프레임워크 v4.0 scribejava Kakao OAuth Login API 오류 수정하기

무한열정 2022. 8. 29. 15:25

Kakao OAuth Login시 오류가 발생한다.

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

scribejava 사용시 Kakao API 로그인 오류 발생시

수정 하려고 할때 관련 자료가 없다.

 

scribejava 버전을 5.6.0 사용시

다음 파일외 몇가지를 커스텀 하여야 한다.

/src/main/java/egovframework/com/ext/oauth/service/KakaoAPI20.java

/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java

/src/main/java/egovframework/com/ext/oauth/service/OAuthVO.java

 

다른 편리한 대안으로 scribejava 버전을 업그레이드 한다.

 OAuth Login에 사용되는 scribejava 버전을 5.6.0 => 8.3.1로 업그레이드

<dependency>
  <groupId>com.github.scribejava</groupId>
  <artifactId>scribejava-apis</artifactId>
  <version>5.6.0</version>
</dependency>
<dependency>
  <groupId>com.github.scribejava</groupId>
  <artifactId>scribejava-apis</artifactId>
  <version>8.3.1</version>
</dependency>

여러가지 삽질을 하였으나

다음 클래스 파일에서 scribejava가 제공하는 KakaoApi를 사용한다.

/src/main/java/egovframework/com/ext/oauth/service/OAuthVO.java

 

즉, 다음과 같이 클래스를 변경하여 사용한다.

egovframework.com.ext.oauth.service.KakaoAPI20
===>
com.github.scribejava.apis.KakaoApi

 

import com.github.scribejava.apis.KakaoApi;

 

초기화시 scrivejava가 제공하는 KakaoApi로 한다.

} else if (isKakao) {
    this.api20Instance = KakaoApi.instance();
    this.profileUrl = KAKAO_PROFILE_URL;
}

 

■ Kakao OAuth 로그인 테스트

1) Kakao OAuth 로그인 테스트를 진행한다.

 

 

2) OAuth Login 결과 성공이 출력된다.

* 로그인 성공메시지가 확인이 된다.

* GitHub 소스

https://github.com/eGovFramework/egovframe-common-components