카카오 로그인 연동은 의외로 간단하다.

 

카카오 로그인 버튼을 커스터마이징 하게 설정하기 때문에 따로 버튼 생성은 하지 않겠다.

 

일단 카카오 개발자 센터에 들어가서 기본적인 세팅부터 해야한다.

 

1. 카카오 개발자 센터에 접속. https://developers.kakao.com/

2. 우측 상단의 로그인 버튼을 눌러 카카오 계정으로 로그인.

3. 앱 만들기 클릭

4. 이름과 회사명 입력 후 앱 만들기 버튼 클릭

5. 우측 메뉴 사용자 관리 클릭

6. 사용자 관리 활성화 버튼 클릭

7. 프로필 정보 수집 목적란에 "소셜로그인에 사용" 입력

8. 카카오계정(이메일)란의 수집조건을 '연결시 선택'으로 설정

9. 카카오계정(이메일)란의 수집목적을 '중요정보 전달 및 로그인 계정용으로 사용'으로 설정

10. 하단의 저장버튼 클릭

11. 좌측의 '일반' 클릭

12. 중앙 우측의 '플랫폼 추가' 버튼 클릭

13. '웹' 클릭

14. 내 사이트의 도메인을 입력. 사용하는 도메인이 여러개면 모두 입력

15. 추가 버튼을 클릭

16. 네이티브 앱 키, REST API 키 값을 기억해둠

 

여기까지하면 기본적인 세팅 및 설정을 완료한 것이다.

카카오 로그인은 네이버 로그인처럼 따로 검수등을 거치지 않아도 된다.

 

<a href="https://kauth.kakao.com/oauth/authorize?client_id=자신의 rest api key&redirect_uri=내리다이렉트url&response_type=code">카카오 로그인</a>

 

버튼만 생성해주고 api url만 걸어주면 끝이다.

 

그리고 나서 해야할 일이 아주 많아지는데

리다이렉트 url 파일로 이동해서 작업을 진행해야한다.

 

$get_data = $_GET;

 

$shell_string = "curl -v -X POST https://kauth.kakao.com/oauth/token -d 'grant_type=authorization_code' -d 'client_id=내 REST API KEY' -d 'redirect_uri=http://".$_SERVER['HTTP_HOST']."/oauth' -d 'code=".$get_data['code']."'";

$output = shell_exec($shell_string);

$token_json = json_decode($output, true);

 

$kakao_email_check = 0;
if (@!$token_json['access_token']) {
    echo "<script>alert('아이디 정보가 없습니다. 재시도 해주세요.');</script>";

    exit();
} else {
    $shell_string = "curl -v -X POST https://kapi.kakao.com/v2/user/me -H 'Authorization: Bearer ".$token_json['access_token']."' -d 'property_keys=[\"kakao_account.email\"]'";

$user_info = shell_exec($shell_string);

 

$user_info_json = json_decode($user_info, true);

 

if (!@$user_info_json['kakao_account']['email'];) {
    $shell_string = "curl -v -X POST https://kapi.kakao.com/v1/user/unlink -H 'Authorization: Bearer ".$token_json['access_token']."'";
    shell_exec($shell_string);

    alert('필수 정보에 동의하지 않으셨습니다. 로그인을 재시도 해주세요.', '_login');
}

 

print_r($user_info_json);

 

이렇게 하면 $user_info_json에 카카오 계정 정보가 담긴 것을 볼 수 있다.

저 $user_info_json에서 데이터를 뽑아서 회원가입을 시키든 로그인을 시키든 활용하면 될 것이다.

+ Recent posts