[TIL] supabase에서 kakao Login

·2024년 1월 15일
1

TIL

목록 보기
72/85
post-thumbnail

우리는 소셜 로그인 중에 카카오 로그인을 구현하기로 했다.

공식문서가 잘 나와있어서 보고 천천히 따라했다.
아래 문서를 보고 따라하면 된다.

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

그런데 공식문서에서도 카카오계정(이메일)은 선택동의로 해 두었는데,
나는
이걸 필수 동의로 변경하고 싶었다.

처음엔 선택 동의만 가능하고 필수 동의가 막혀있길래 안되는 건 줄 알았는데, 비즈 앱 전환 하고 심사 신청을 하니 필수 동의할 수 있도록 바뀌었다.

 const logInWithKakao = async () => {
    const { data, error } = await supabase.auth.signInWithOAuth({
      provider: 'kakao',
    });
    if (error) throw error.message;
  };

카카오 로그인 버튼에 다음과 같은 함수를 연결해 놓으면 된다.

그리고 카카오로그인을 했을 때에도 public 테이블인 users 테이블에
저장시키기 위해 handle_new_user() 라는 트리거 함수를 다음과 같이 수정했다.

begin
  insert into public.users(id, email, user_name, avatar_url)
  values(new.id, new.email, new.raw_user_meta_data ->> 'user_name', new.raw_user_meta_data ->> 'avatar_url');
  return new;
end;

처음에 필드 이름을 nickname으로 했었는데, 카카오 같은 경우 user_name 이라는 값으로 닉네임이 들어와서, 일괄적으로 user_name 으로 수정하였다.

profile
느리더라도 조금씩, 꾸준히

0개의 댓글