카카오 소셜로그인 구현

김상연·2021년 4월 8일
1

wecode

목록 보기
41/42

https://developers.kakao.com/
카카오톡 소셜로그인을 구현하기 위해서는 위 사이트를 접속

카카오톡 접속 후 상단에 있는 내 애플리케이션에 접속한다.
애플리케이션을 추가하고 앱 키를 4개를 부여받는데 본인은 Javascript 키를 사용함.

index.html에 카카오톡 주소를 추가한다.

<script src="https://developers.kakao.com/sdk/js/kakao.js"></script>

그 다음 내가 사용한 Javascript 키를 사용해주어야 하는데 그냥 써버리면 github에 올렸을 떄 보안 문제가 있어서 원래는 env 파일을 이용하는 것으로 알고 있지만 일단 config 파일을 생성해서 그 안에 키를 넣고 컴포넌트로 보내는 형식으로 작성했다.

config 파일을 객체형식으로 해서 key값은 KAKAO_URL로 export하고
카카오 로그인 컴포넌트에서

import { config } from '../../config';
function SocialLogin() {
    Kakao.init(config.KAKAO_URL);
    console.log(Kakao.isInitialized());
    Kakao.Auth.login({
      success: function (authObj) {
        console.log(authObj);
        fetch('api 주소', {
          method: 'GET',
          headers: {
            Authorization: authObj.access_token,
          },
        })
          .then(res => res.json())
          .then(res => {
            localStorage.setItem('access_token', res.access_token);
            if (res.access_token) {
              alert('로그인 성공!');
              history.push('/');
            } else {
              alert('다시 확인해주세요');
            }
          });
       },
        fail: function (err) {
        console.log('에러', err);
        alert('로그인실패!');
         },
       });
    }

카카오 개발자 사이트에 들어가면 설명이 쭉 나오므로 그대로 따라해도 무방하다.

Kakao.init(내 자바스크립트 키 위치)로 내 키를 인식시켜주고
Kakao.Auth.login으로 내가 받아오려는 정보들을 받아오고 fetch 함수로 백엔드에 카카오에서 받은 access_token을 넘겨준다.
그리고 백엔드에서 보내준 다른 access_token을 localStoragedp 저장하면 메인페이지로 넘어가는 동시에 로그인 성공이라는 alert가 뜬다.

로그아웃 기능은 간단하게 localStorage에 넣어둔 access_token을 없애면 끝!

1개의 댓글

comment-user-thumbnail
2021년 10월 4일

VM36:2 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 2
Promise.then(비동기)
success @ login:184
runAuthCallback @ kakao.js:1794
handleAuthResponse @ kakao.js:5608
(익명) @ kakao.js:5562
aa @ kakao.js:3878
incoming @ kakao.js:3893
ad @ kakao.js:3307

오류가 계속 뜨는데 혹시 이유를 알 수 있을까요 ㅜ

답글 달기