카카오 간편 로그인관련 문의드립니다

카카오 간편 로그인 관련 문의드리고자 합니다.

현재 Kakao.Auth.login 방식으로 PC/모바일 웹에서 사용 중이였습니다.
최근 인스타에서 로그인이슈가 발생하여 확인하여보니 Kakao.Auth.login 은 새창을 해당 브라우저가 지원하지 않아 로그인 이슈가 있다고 확인하였으며, Kakao.Auth.authorize 방식으로 수정하란식의 Dev Talk 게시글을 확인하였습니다.

여기서 질문드리고 하는게

Kakao.Auth.login 후 성공시 아래와 같이 유저정보 호출하여 내부로직 ajax 호출하여 로그인 처리하였는데
Kakao.Auth.authorize 에서는 success 관련이 없는지, redirectUri에 controller 단에서 api 호출하여 처리해야하는지 문의드립니다. 예제 있으시면 공유 요청드립니다.

Kakao.Auth.login({
  success: function(authObj) {
    Kakao.API.request({
      url: '/v2/user/me',
      success: function(res) 
  }
});
  1. Kakao.Auth.authorize 방식으로 로그인시 전체동의 및 이메일 전화번호 제공에 대한 동의를 받던데 Kakao.Auth.login 방식일때는 동의를 받은적이 없어서 이슈가 있을수 있는지 문의드립니다.

  2. Kakao.Auth.login 으로 kakao.develop 내 설정하였는데 Kakao.Auth.authorize 일때 추가적으로 설정해야할 부분이 있는지 문의드립니다.

안녕하세요.

1.

Kakao.Auth.authorize는 Kakao.Auth.login과 달리 접근토큰 발급이 브라우저에서 이루어지지 않고 말씀처럼 서비스측 redirect_uri에서 이루어져야만 합니다.
(redirect_uri 의 프론트앤드에서도 파라미터를 추출하여 발급 가능합니다만, 보통은 백앤드에서 처리 합니다.)

아래 문서를 참고하여 REST-API 방식으로 접근토큰을 발급 받으실수 있습니다.

REST API | Kakao Developers REST API - 토큰 받기

이 때 발급 받은 접근토큰으로 사용자 정보조회까지 진행하시면 좋을것 같습니다.

2.

로그인 구현 수단 (popup, redirect)에 따라 달리 동의화면이 노출되지 않습니다.
scope 파라미터를 사용하지 않으셨다면 두 방법간 동의 화면은 항상 동일하게 노출됩니다.

만약, 현재 다른 동의화면이 노출되신다면 두 방법간 사용된 scope 파라미터가 달랐을것으로 보입니다.(기본 미설정) 해당 파라미터를 확인 부탁드립니다.

3.

redirect_uri 는 보안상 디벨로퍼스에 미리 등록되어 있어야만 사용가능하고 등록하지 않은 uri를 사용 시, KOE006 오류가 발생하게 됩니다.
해당 설정은 내 애플리케이션 > 제품 설정 > 카카오 로그인 메뉴에서 Redirect URI를 설정하실수 있습니다.

2개의 좋아요

추가 질문드립니다.

[카카오 로그인하기] 클릭 시 JS 내 Kakao.Auth.authorize 실행 후 설정한 redirect_uri 전송시
‘redirect_uri’?code=??? 와 같이 받았습니다.

code값을 GET으로 받을수 있어서 해당 code값으로 https://kapi.kakao.com/v2/user/me 실행시켰더니

  $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://kapi.kakao.com/v2/user/me');
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$_GET['code']));
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $json = curl_exec($ch);

        var_dump($json);
        curl_close($ch);

{"msg":"this access token does not exist","code":-401} 메세지 확인되어 뭔가 실행방법이 잘못된건지 문의드립니다.

code는 인가코드 입니다.
인가코드로 접근토큰 발급 받은 뒤 접근토큰으로 API 요청 부탁드립니다.

REST API | Kakao Developers REST API - 토큰 받기

1개의 좋아요

네. 감사합니다.
토큰 생성 후 호출하니 데이터 받아옴을 확인하였습니다.

추가 질문으로

Kakao.Auth.authorize({
redirectUri: ‘${REDIRECT_URI}’,
});

위에서 return_url 데이터를 전달하는 방법은 없는지 문의드립니다.

oAuth2 표준 스팩 상, redirect_uri으로 커스텀 파라미터 전달은 불가 합니다.
때문에 클라이언트의 요청을 redirect_uri 에 전달하는데 제약이 있는데요

redirect_uri 로 데이터를 전달하고자 하시는 경우 아래 두 방법중 하나를 사용하실 수 있을것 같습니다.

  1. state 파라미터 활용
    state 파라미터가 설정되면 로그인 이후, redirect_uri 로 같이 전달하게 됩니다.

  2. 쿠키 사용
    로그인 전, 임시로 쿠키에 필요한 정보를 저장해 두었다가 redirect_uri에서 꺼내 사용하는 방법도 가능할것 같습니다.

2개의 좋아요

테스트 중 발생된 이슈사항에 대해 문의드립니다.

모바일 기기에서 테스트 중 발생된 케이스 전달드립니다.
로그인 후 아이디에서 2단계 인증요청 안내가 왔고 카카오톡으로 이동하여 인증완료 후 다시 원래 화면으로 돌아갔을시 로그인 처리가 되지않았습니다.

다른 사이트에 적용된 케이스들도 찾아보았는데 동일한 이슈가 발생하여서 Kakao.Auth.authorize 시 2단계 인증이 발생될경우 로그인 처리에 대해 이슈사항이 있는지 문의드립니다.

재현 가능한 URL 및 테스트 환경(ex, 모바일 웹브라우저 or 웹뷰 등)이 어떻게 되는지 확인 부탁드립니다.