본문 바로가기

지적자본

워드프레스 카카오톡 로그인이 되지 않을때 - 카카오톡 로그인 V2 사용자 정보 요청 api 수정방법

by 인공 쿨럭~ 2020. 2. 22.

워드프레스와 같은 사용자가 커스터마이징을 할 수 있는 기반으로 웹사이트를 구현하다보면, 만나게 되는 어려움들이 많이 있다. 자유롭게 플러그인을 설치하여 쉽게 기능을 구현하고 할 수 있다면, 내용들을 수정하여 자신의 입맛에 맞는 방식으로 웹사이트를 만들어 갈 수 있다. 하지만, 각각의 플러그인들의 호환성과 늦은 업데이트는 사용자로 하여금 웹사이트 운영에 심각한 문제를 안겨줄수도 있다.

 

필자는 워드프레스를 회원제로 운영하고 있으며, 대부분의 사이트들이 그러하듯, 회원제 시스템에 따른 회원들의 로그인 문제들이 여러번 있어왔다. 특히 소셜미디어 계정으로 웹사이트를 로그인하게 만드는 방법을 규현하려고 하였지만, 대부분의 플러그인들이 외국사람들에 의해 개발된 만큼 국내에 익숙한 네이버나 카카오톡, 다음 등의 기능을 기대하는 것은 제약이 있다.

 

 

그럼에도 소셜계정으로 로그인할 수 있도록 기능을 제공하는 "WorfPress Social Login"이라는 플러그인에 네이버나 카카오톡의 항목을 추가하여 국내 사용자들도 쉽게 네이버아이디나 카카오톡아이디로 접속할 수 있도록 해주는 추가 플러그인 "Wsl Login Extends naver"는 참으로 국내 워드프레스 이용자들에 귀한 플러그임에는 틀림이 없다.

 

서론이 길었지만, 최근 최근 카카오톡 로그인 api가 "v1"에서 "v2"로 변경됨으로 기존의 "v1"를 이용하여 제공하는 "Wsl Login Extends naver" 플러그인이 잘 작동되지 않는다. 이는 "Wsl Login Extends naver"의 개발자가 카카오톡의 정책의 반영해주지 않고 있기 때문에 발생하는 문제이다. "Wsl Login Extends naver"는 현재 카카오톡 로그인 v1만을 지원하는데, 카카오톡 측은 v1는 더이상 지원하고 있지않고 v2만을 지원하니 생기는 문제이다.

 

"Wsl Login Extends naver"가 아직 업데이드를 지원하지 않음으로 현재 워드프레스에서 카카오톡으로 로그인을 하면 아래와 같은 메시지가 나온다.

 

 

"

Request failed. Either you have cancelled the authentication or Kakao refused the connection.

ξ User profile request failed! Kakao returned an invalid response.
400. {"msg":"application(id=, name='') using deprecated api(/v1/user/me)","code":-9}

갑자기 카카오톡 로그인을 하면 위와 같은 메시지가 나와서 구글링을 통해서 방법을 아무리 찾으려고 하였으나 찾을 수가 없다. 당연히 국내 유저들 가운데 워드프레스를 회원제로 운영하는 극소수들의 문제임으로 외국인들이 이러한 이슈에 대해 명쾌한 답을 하지 못하는 것은 당연한 일이다.

 

여하튼 방법은 아주 간단했다. "Wsl Login Extends naver"의 파일 가운데 "kakao.php" 의 일부분만 "v2" 버전으로 수정해주면 간단히 해결되는 문제인데, 문제의 원인부터 카카오톡 api가 "v2"로 변경된 사실을 몰랐던 필자는 헛다리를 계속 짚고 있었던 것이다.

 

먼저 수정을 직접 원하는 사람들은 wordpress(설치경록)/wp-content/plugins/wsl-login-extends-navers/proveders/Kakao.php 파일의 내용을 아래와 같이 수정하면 된다.

 

$this->api->api_base_url = "https://kapi.kakao.com/v1/";
$this->api->api_base_url = "https://kapi.kakao.com/v2/";
$params = array('property_keys'=>'kaccount_email');
$params = array('property_keys'=>array('kakao_account.email')); // v2 parameter
$email = @ $data->kaccount_email;
$email = @ $data->kakao_account->email; // v2 version

위의 세부분만 찾아서 수정해주고 저장하면 된다. 만약 위의 방법을 모르거나 귀찮다면, 수정한 파일인 아래의 파일을 저장하면 붙여넣기하면된다.

Kakao.php
0.01MB

 

단, 위의 방법은 아직 "Wsl Login Extends naver" 플러그인이 업데이트 되지 않은 시점(현재 2020.02.22)에서만 적용할 것을 추천드리며, 업데이트가 되었다면 위의 방법을 사용하지 말고 플러그인 업데이트를 통해서 해결해야할 것이다.

반응형




댓글2

  • SemiDragon 2021.06.18 14:36 신고

    안녕하세요,
    블로그 정말 잘 보았습니다.
    다만, 이 해결법을 사용후에도 'Unkown Provider'의 이유로 에러가 뜨는데 혹 해결방법을 아실까요..?ㅠㅠ
    혹은 지금도 이 플러그인을 잘 사용하고 계신지 궁금합니다.
    답변주시면 정말 감사하겠습니다..ㅜㅜ
    감사합니다!!!
    답글

    • 인공 쿨럭~ 2021.07.04 21:43 신고

      답변이 늦었습니다. 해당 플러그인은 최근에 방식을 변경해서 완전히 새로운 플러그인이 되었습니다. 저는 롤백(이전버전으로 되돌림)하여 업데이트하지 않고 이전 버전으로 사용중에 있습니다. 만약 문제가 있다면 해당 플러그인을 다운그레이드해보시길 바랍니다.