React

[React] 카카오 로그인 구현하기 (with Supabase)

daami 2025. 1. 25. 22:24

프로젝트에서 사용자 데이터를 관리하는 데이터베이스로 Supabase를 사용중이다.

공식문서에 카카오 로그인 구현하는 방법이 잘 나와있어 이를 보면서 진행했다. 

 

문서에 나와있는 대로 Kakao developer와 Supabase 셋팅을 했다.

https://supabase.com/docs/guides/auth/social-login/auth-kakao

 

Login with Kakao | Supabase Docs

Add Kakao OAuth to your Supabase project

supabase.com

 

 

// useKakaoLogin 훅 

import { supabase } from '@/lib/supabase';

const useKakaoLogin = () => {
  const signinWithKakao = async () => {
    const { error } = await supabase.auth.signInWithOAuth({
      provider: 'kakao',
      options: {
        redirectTo: '/',
      },
    });

    if (error) {
      alert(
        `카카오 로그인 중 문제가 발생했습니다: <${error.code}> ${error.message}`
      );
    }
  };

  return { signinWithKakao };
};

export default useKakaoLogin;

 

이제 이 훅을 해당 페이지(로그인 페이지)에서 사용하면 된다.

//....

import useKakaoLogin from '@/features/auth/hooks/useKakaoLogin';

const LoginPage = () => {
//...
  const { signinWithKakao } = useKakaoLogin();

//...

  return (
    //...
                {/* 소셜 로그인 */}
                <div className="flex w-full mt-1 md:mt-2 lg:mt-4 gap-3">
                  <Button
                    className="w-full cursor-pointer bg-[#ffeb38] hover:bg-[#ffeb38] text-xs md:text-sm lg:text-base text-wiz-black"
                    type="button"
                    onClick={signinWithKakao}
                  >
                    <img
                      src="/assets/auth/kakao_logo.png"
                      alt="kakao logo"
                      className="w-auto h-5 md:h-6 lg:h-8"
                    />
                    <p>카카오 로그인</p>
                  </Button>
          //...
        
};

export { LoginPage };

 

 

이때 Kakao developer 페이지에서 앱을 비즈니스로 전환해주어야했다. 로그인을 할 때 카카오계정을 수집하기 때문이다. 

 

 

내 애플리케이션 > 앱 설정 > 비즈니스에서 “카카오비즈니스 통합 서비스 약관 동의"를 누르면 된다.

 

만약 동의 처리가 되지 않았다면 Kakao developer 페이지에서 로그아웃 후 다시 로그인을 진행하면 된다.

 

 

 

** 추후 추가할 것

직전에 어떤 계정으로 로그인 했었는지 알려주기(소셜로그인)