Confirmation URL) 활용한 회원가입 구현https://github.com/lopun-lecture/inflearn-supabase-instagram-clone/commit/5dcc45acf10349a446bd1d444013ebec41968430
Password-based Auth | Supabase Docs
Web Client → Supabase로 회원가입 요청
Supabase에서 회원가입 처리 + 인증 링크가 담긴 이메일 전송
{.ConfirmationUrl} 템플릿 활용

유저는 이메일로 전송된 인증 링크를 클릭
Web Client에서는 전송받은 code값을 활용해서 로그인 세션을 획득
supabase.auth.exchangeCodeForSession(code)로그인까지 자동으로 완료
config/auth-provider.tsx
"use client";
import { usePathname, useRouter } from "next/navigation";
import { useEffect } from "react";
import { createBrowserSupabaseClient } from "utils/supabase/client";
export default function AuthProvider({ accessToken, children }) {
const supabase = createBrowserSupabaseClient();
const router = useRouter();
useEffect(() => {
const {
data: { subscription: authListner },
} = supabase.auth.onAuthStateChange((event, session) => {
if (session?.access_token !== accessToken) {
router.refresh();
}
});
return () => {
authListner.unsubscribe();
};
}, [accessToken, supabase, router]);
return children;
}
app/signup/confirm/route.ts