Supabase는 Firebase와 유사한 Backend-as-a-Service(BaaS)로,
인증(Authentication), 데이터베이스, 저장소, 실시간 기능을 제공하는 서비스이다.
로그인 기능을 구현하면서 Supabase 인증(Auth) 시스템과auth.signOut()이 실제로 어떻게 동작하는지 살펴봤다.
📌 supabase.auth를 사용하여 유저 로그인, 회원가입, 로그아웃 등의 기능을 제공
| 기능 | 설명 |
|---|---|
supabase.auth.signUp({ email, password }) | 이메일 & 비밀번호 회원가입 |
supabase.auth.signInWithPassword({ email, password }) | 이메일 & 비밀번호 로그인 |
supabase.auth.signInWithOAuth({ provider }) | 소셜 로그인 (Google, Kakao 등) |
supabase.auth.getUser() | 현재 로그인한 유저 정보 가져오기 |
supabase.auth.signOut() | 로그아웃 (세션 삭제) |
📌 supabase.from("테이블명")을 사용하여 데이터를 가져오거나 삽입 가능
| 기능 | 설명 |
|---|---|
supabase.from("users").select("*") | 모든 유저 데이터 조회 |
supabase.from("users").insert({ name: "홍길동", email: "test@email.com" }) | 새로운 데이터 삽입 |
supabase.from("users").update({ name: "김철수" }).eq("id", 1) | 특정 데이터 수정 |
supabase.from("users").delete().eq("id", 1) | 특정 데이터 삭제 |
📌 supabase.storage를 사용하여 파일 업로드, 삭제, 다운로드 가능
| 기능 | 설명 |
|---|---|
supabase.storage.from("avatars").upload("파일명", file) | 파일 업로드 |
supabase.storage.from("avatars").getPublicUrl("파일명") | 파일 URL 가져오기 |
supabase.storage.from("avatars").remove(["파일명"]) | 파일 삭제 |
signInWithPassword({ email, password }) 실행 sbKey) getUserInfo()로 유저 정보 가져오기 signOut() 실행 getUserInfo() 호출 시 null 반환