Wat is authenticatie?
Authenticatie is het mechanisme waarmee je vaststelt “wie” de gebruiker is die toegang vraagt. In een webapplicatie ontvang je via een inlogformulier een e-mailadres en wachtwoord, en als die kloppen sla je de gebruikersinformatie op in de sessie. Bij volgende requests wordt die sessie geraadpleegd om de gebruiker te identificeren. Laravels authenticatiefunctionaliteit is opgebouwd uit twee concepten: “guards” en “providers”.- Guards: bepalen hoe gebruikers bij elk request worden geauthenticeerd. De standaard is de
sessionguard, die de status beheert met sessies en cookies. - Providers: bepalen hoe gebruikers uit de database worden opgehaald. Standaard wordt Eloquent gebruikt.
Het configuratiebestand voor authenticatie is
config/auth.php. De standaardconfiguratie volstaat voor de meeste webapplicaties.Authenticatie met een starter kit
In Laravel hoef je bij het aanmaken van een applicatie metlaravel new alleen een starter kit te kiezen, en dan worden authenticatiefuncties zoals inloggen, registreren en wachtwoordherstel automatisch opgezet. Dit is de meest aanbevolen aanpak.
1
Maak een applicatie aan
Maak een applicatie aan met de Laravel installer. Tijdens het proces verschijnt een prompt waarin je een starter kit kunt kiezen.Als starter kit kun je kiezen uit React, Vue, Livewire en Svelte.
Kies wat past bij de tech stack van je team.
2
Installeer de frontend-dependencies
3
Bereid de database voor
Controleer de databaseconfiguratie in het De initiële migrations, inclusief de
.env-bestand en voer daarna de migrations uit.users-tabel, worden toegepast.4
Start de ontwikkelserver
http://localhost:8000 gaat, zie je in de navigatie de links “Register” en “Log in”.
Ga naar /register en registreer een gebruiker.Beschikbare starter kits
React
Hiermee bouw je een moderne SPA met React 19, TypeScript, Tailwind en shadcn/ui. Dankzij Inertia kun je een React-frontend gebruiken terwijl je server-side routing behoudt.Vue
Gebruikt de Vue Composition API, TypeScript, Tailwind en shadcn-vue. Net als bij React verloopt de koppeling met de server-side via Inertia.Livewire
Gebruikt Livewire, waarmee je dynamische UI’s kunt bouwen met alleen PHP. Ideaal voor teams die vooral met Blade-templates werken, of als je liever geen JavaScript-framework gebruikt. De Flux UI componentenbibliotheek is inbegrepen.Svelte
Gebruikt Svelte 5, TypeScript, Tailwind en shadcn-svelte. In combinatie met Inertia bouw je hiermee een moderne SPA.De Auth-facade
Met deAuth-facade kun je informatie over de momenteel geauthenticeerde gebruiker ophalen en de authenticatiestatus controleren.
De geauthenticeerde gebruiker ophalen
Request-object ophalen.
De authenticatiestatus controleren
Auth::check() geeft met true / false aan of de gebruiker is ingelogd.
@auth en @guest handig.
Routes beveiligen
Om routes te maken die alleen toegankelijk zijn voor ingelogde gebruikers, gebruik je deauth-middleware.
/login.
Om meerdere routes in één keer te beveiligen, gebruik je een groep.
Routes alleen voor gasten
Om ingelogde gebruikers door te sturen, gebruik je deguest-middleware.
Door deze toe te passen op de inlog- en registratiepagina kun je gebruikers die al zijn ingelogd doorsturen naar het dashboard.
Handmatige authenticatie
Om zonder starter kit handmatig een inlogproces te implementeren, gebruik jeAuth::attempt().
Auth::attempt() geef je een array met inloggegevens door.
Het wachtwoord wordt automatisch vergeleken met de hash, dus geef het als platte tekst door.
Om een “ingelogd blijven”-functie te implementeren, geef je true door als tweede argument.
Ook als je handmatige authenticatie implementeert, is het aan te raden de code van de starter kit als referentie te gebruiken. Die dient als voorbeeld van een veilige implementatie.
Uitloggen
Om een gebruiker uit te loggen, roep jeAuth::logout() aan.
Het is een best practice om daarbij ook de sessie ongeldig te maken en het CSRF-token opnieuw te genereren.
Samenvatting
Volgende stap
Middleware
Leer in detail hoe de
auth-middleware werkt en hoe je je eigen middleware maakt.