- Replace default Next.js home with role-aware root redirect - Add email/password login form (client component, signInWithPassword) - Add auth callback route for Supabase code exchange - Login page at /login, callback at /api/auth/callback Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AWxyMibCuGGtSQSqfajDQ7
26 lines
623 B
TypeScript
26 lines
623 B
TypeScript
// app/page.tsx
|
|
import { redirect } from 'next/navigation'
|
|
import { createClient } from '@/lib/supabase/server'
|
|
import { getRoleHome, isValidRole, type UserRole } from '@/lib/auth/roles'
|
|
|
|
export default async function RootPage() {
|
|
const supabase = await createClient()
|
|
const {
|
|
data: { user },
|
|
} = await supabase.auth.getUser()
|
|
|
|
if (!user) redirect('/login')
|
|
|
|
const { data: profile } = await supabase
|
|
.from('users')
|
|
.select('role')
|
|
.eq('id', user.id)
|
|
.single()
|
|
|
|
if (profile?.role && isValidRole(profile.role)) {
|
|
redirect(getRoleHome(profile.role as UserRole))
|
|
}
|
|
|
|
redirect('/login')
|
|
}
|