카카오싱크 리다이렉트 로그인 시 무한반복 제발 도와주세요 ㅠㅠ

문의 사항에 따라 필요한 정보를 먼저 입력하시면 더 빠르게 대응해 드릴 수 있습니다.

카카오 시작하기(Redirect)로 약관동의를 해도 토큰발급이 안되요…ㅠ
image
image
image
image
이과정 무한반복이에요…ㅠㅠㅠ

  • 개발 과정에서 문제가 있을 경우

    • 앱 아이디(app ID): 434138
    • 호스팅 사:
    • 서비스 URL : https://gs.markit.co.kr/oauth
    • 오류 내용 : 카카오 싱크의 로그인 이후 엑세스 토큰 발급에서 문제가있습니다. 팝업형식으로 로그인 이후 약관동의 및 채널추가 동의를 받고 Kakao.Auth.getAccessToken()를 실행시키면 엑세스 토큰이 잘 받아지는데 리다이렉트방식으로 시도하면 토큰이 받아지지 않습니다. 약관 동의 이후 다시 리다이렉트방식 버튼을 클릭하면 약관동의 페이지로 이동합니다. 제 생각엔 약관동의 자체가 이루어지지 않는것 같습니다. 이유가 뭔지 알수 있을까요?
  • 퍼머링크 생성이 필요할 경우 (자세한 신청 방법은 가이드 참고)

    • 카카오싱크 퍼머링크의 서비스 랜딩URL:
    • 디벨로퍼스 앱과 연결된 카카오톡 채널의 검색용 아이디:

카카오 로그인 관련 에러(Invalid redirect. 예: KOE006)가 발생할 경우, 가이드를 참고합니다.

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


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

434138입니다

오늘 /oauth/token 토큰 조회 API 에 오류 이력이 없는데요.
리다이렉트 이후 토큰 조회 처리 어떻게 하셨는지 코드 블럭 공유 부탁드려요~

아래 flow에서 토큰 조회가 성공하지 않으면 동의 내용은 저장되지 않습니다.

리다이렉트방식 버튼을 클릭하면 약관동의 페이지로 이동 -> 동의 후, 리다이렉트 페이지 이동 -> 리다이렉트 페이지에서 토큰 조회 API 호출

<script>
// static val
// --------------------
const KAO_JS_KEY = '33eade4cf8e30429535b2f19343813ba'

// variables
// --------------------
let ACCESS_TOKEN = '';

// Events
// --------------------

// functions
// --------------------
function setBtnEvt(){
    $('.btn-redirect').click(function(){
        Kakao.Auth.authorize({
            redirectUri: 'https://gs.markit.co.kr/oauth'
        })
    })
}


function getCookie(name) {
    const value = "; " + document.cookie;
    const parts = value.split("; " + name + "=");
    if (parts.length === 2) return parts.pop().split(";").shift();
}

// init
// --------------------
$(function() {init();});

function init() {
    initKakaoSdk();
    setBtnEvt();
}
function initKakaoSdk(){
    Kakao.init(KAO_JS_KEY);
    console.debug('Loaded Kao Sdk : ' + Kakao.isInitialized());

    ACCESS_TOKEN = Kakao.Auth.getAccessToken()
    console.debug('Got Access Token : ' + ACCESS_TOKEN)
    console.debug('Token in Cookie : ' + getCookie('authorize-access-token'))
    Kakao.Auth.setAccessToken(Kakao.Auth.getAccessToken(), true);
}

로그인 처리 부 말고,

리다이렉트로 이동한 후, 소유하신 사이트의 처리 방식 확인이 필요합니다~!!

서비스 개발전 테스트목적이라 다시 현재페이지로 리다이렉트 후
Kakao.Auth.getAccessToken()
실행하고있어요

맨 밑에부분이 토큰 가져오는 부분이에요

1. 팝업형식으로 로그인이 JS SDK를 이용해 getAccessToken이 잘되는 이유

JavaScript 는 웹브라우저에 로딩하고 새로고침(페이지 이동) 시, 상태가 저장되지 않습니다.

팝업형식 카카오 로그인은 새로고침(페이지 이동) 없이,
팝업 페이지에서 동의하고 카카오로 부터 토큰을 받아오고 현재 페이지를 유지하여 토큰이 세팅됩니다.

2. 리다이렉트 방식 로그인 시 getAccessToken 이 안되는 이유

리다이렉트 방식 로그인을 하면 페이지가 이동됩니다. 카카오 동의창으로 이동하고 동의 후, 다시 소유하신 사이트로 리다이렉트 됩니다.
리다이렉트 된 페이지에는 로그인 시도 하던 페이지에서 설정된 값은 유지되지 않습니다.
리다이렉트된 페이지에 전달된 code 파라메터를 이용해 토큰 요청 API 를 호출 하셔야 토큰을 사용할 수 있습니다.

즉, 리다이렉트 페이지에서 REST-API 방식의 토큰 받기를 구현 하셔야합니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-token

감사합니다!