우리는 소셜 로그인 중에 카카오 로그인을 구현하기로 했다.
공식문서가 잘 나와있어서 보고 천천히 따라했다.
아래 문서를 보고 따라하면 된다.
👉 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 으로 수정하였다.