카카오 로그인 기능 구현

2025. 5. 16. 18:48Coding Study/Node.js

 

1. 카카오 디벨로퍼스 사이트에 가서 회원 가입

https://developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

2. 내 에플리케이션 추가

 

 대략적으로 작성하고 저장

 

 

3. 설정하기

  1) 카카오 로그인 활성화 

    대시보드 > 설정 > 카카오로그인 > 설정하기 클릭

 

카카오 호그인 활성화 설정  on 으로 설정

 

2) 동의 항목 설정 (닉네임 / 프로필 사진 등 )

 

 

 3) 앱키로 가서 REST API 키를 복사 한다.

   아래 코드의 VITE_KAKAOCLIENT_ID 에 넣을 예정

 

4. 카카오 로그인 문서를 확인 하면서 진행 

 

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

 문서의 카카오 로그인의 인가코드 받기 토큰 받기 후 사용자 정보 가져오기를 차례대로 API 를 아래 코드와 같이 요청 하면

 받아 올 수 있다.

const getToken = async (authorizationCode) => { // 아래의 useEffect 가 실행되면 함수실행
    axios
      .post(
        `https://kauth.kakao.com/oauth/token`,  // 토큰 받기 요청
        {
          grant_type: "authorization_code",    // 헤더 작성
          client_id: VITE_KAKAOCLIENT_ID,
          redirect_uri: redirectURI,
          code: authorizationCode,
        },
        {
          headers: {
            "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
          },
        }
      )
      .then((res) => {
        kakaoAccessToken = res.data.access_token;   // 응답에서 토큰을 받아서
        dispatch(kakaoTokenSlice.actions.update(kakaoAccessToken));
        return axios.get(`https://kapi.kakao.com/v2/user/me`, {  // 토큰으로 다시요청
          headers: {
            Authorization: `Bearer ${kakaoAccessToken}`,
            "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
          },
        });
      })
      .then((response) => {   // 응답을 받으면 유저 이름 과 Profile 을 받을 수 있다.
        const { nickname, profile_image } = response.data.properties;
        dispatch(userInfoSlice.actions.update({ nickname, profile_image })); // 리덕스 툴킷으로 전역으로 저장
        dispatch(userLoginSlice.actions.isLogin(true));
      });
  };

  useEffect(() => {              //로그인 클릭하면 아래의 리다이렉션된 페이지의 url에서 코드를 받아온다.
    const authorizationCode = serchParams.get("code");  //인가코드받기 : 리다이렉션된 url 의 code 부분에 accessToken 이있다.
    if (authorizationCode) {  // accessToken 이 있으면
      getToken(authorizationCode);  // 위의 함수 실행( token 받아서 유저 정보 받기 )
    }
  }, [serchParams]);

 

 

 

'Coding Study > Node.js' 카테고리의 다른 글

OAuth 인증  (0) 2025.05.16
token 인증방식  (0) 2025.05.15
Session  (0) 2025.05.14
cookie  (0) 2025.05.14
express / axios  (0) 2025.05.13