기능
인증 시스템
인증 시스템
VIBEBASE는 Supabase Auth를 기반으로 안전하고 확장 가능한 인증 시스템을 제공합니다.
인증 방식
이메일/비밀번호 로그인
기본 인증 방식으로 이메일과 비밀번호를 사용합니다.
// 로그인 예시
const { data, error } = await supabase.auth.signInWithPassword({
email: 'user@example.com',
password: 'password123',
});
소셜 로그인
Google, GitHub 등 OAuth 제공자를 통한 로그인을 지원합니다.
역할 기반 권한
사용자는 다음 세 가지 역할 중 하나를 가집니다:
| 역할 | 설명 | 권한 |
|---|---|---|
user | 기본 사용자 | 개인 대시보드 접근 |
admin | 관리자 | 사용자 조회/수정 |
super_admin | 최고 관리자 | 모든 권한 (삭제, 역할 변경, 설정) |
보호된 라우트
인증 필수 라우트
/auth/* 외의 모든 라우트는 인증이 필요합니다. 미인증 사용자는 /auth/login으로 리다이렉트됩니다.
관리자 전용 라우트
/admin/* 라우트는 admin 또는 super_admin 역할이 필요합니다.
역할 확인 헬퍼
import { isAdmin, isSuperAdmin, requireAdmin } from '@/lib/admin/auth';
// 역할 확인
if (await isAdmin()) {
// 관리자 전용 로직
}
// 역할 필수 (미충족 시 에러)
await requireAdmin();