2.0 KiB
2.0 KiB
Les 9 — Lesopdracht
Bouw de auth-flow voor QuickPoll
Duur: ~60 minuten in-class, samen met klasgenoten.
Doel
Aan het einde van deze opdracht heeft jouw QuickPoll-fork een werkende signup-, login- en logout-flow met een Navbar die de sessie-status toont.
Vereisten
-
Supabase Auth aan
- Open je Supabase dashboard → Authentication → Providers → Email
- Zet "Disable Email Confirmations" tijdelijk AAN (voor testen)
-
/signuppagina- Form met email + password
- Server action die
supabase.auth.signUpaanroept - Bij succes: redirect naar
/ - Bij fout: toon de error-message
-
/loginpagina- Form met email + password
- Server action die
supabase.auth.signInWithPasswordaanroept - Bij succes: redirect naar
/ - Bij fout: toon de error-message
-
Navbar component
- Server component
- Vraagt
getUser()op - Toont email + "Uitloggen" als ingelogd
- Toont "Inloggen" + "Registreren" als anoniem
-
/signoutserver action- Roept
supabase.auth.signOut()aan - Redirect naar
/
- Roept
-
Middleware
- Gebruik de
updateSession-helper uit de Supabase docs - Configureer matcher om alle routes te dekken behalve statische assets
- Gebruik de
Stappenplan
- Installeer
@supabase/ssr(10 min) - Maak
lib/supabase-server.ts(10 min) - Maak
/signuproute + action (15 min) - Maak
/loginroute + action (10 min) - Maak Navbar component (10 min)
- Test de volledige flow (5 min)
Op te leveren
- GitHub-commit met werkende code
- Screenshot van Navbar in beide states (ingelogd + anoniem)
- 2 zinnen reflectie: wat ging makkelijker dan verwacht, wat lastiger?
Inleveren: Push naar je QuickPoll-repo én plaats een screenshot in de Teams chat.
Hulp nodig?
- Stuck op cookies? Vraag een klasgenoot, dan Tim
- Stuck op middleware?
Les09-Live-Coding-Guide.mdheeft de complete code - Stuck op Supabase config? Loop met Tim mee in een browser-share
Veel succes!