Skip to main content

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 session guard, 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 met laravel 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 .env-bestand en voer daarna de migrations uit.
De initiële migrations, inclusief de users-tabel, worden toegepast.
4

Start de ontwikkelserver

Als je in de browser naar http://localhost:8000 gaat, zie je in de navigatie de links “Register” en “Log in”. Ga naar /register en registreer een gebruiker.
Met een starter kit zijn de volgende functies direct beschikbaar.
Alle code die de starter kit genereert (controllers, routes, views) staat in je eigen applicatie. Je kunt deze vrij aanpassen en naar wens customizen.

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 de Auth-facade kun je informatie over de momenteel geauthenticeerde gebruiker ophalen en de authenticatiestatus controleren.

De geauthenticeerde gebruiker ophalen

In een controller kun je de gebruiker ook via het Request-object ophalen.

De authenticatiestatus controleren

Auth::check() geeft met true / false aan of de gebruiker is ingelogd.
In Blade-templates zijn de directives @auth en @guest handig.

Routes beveiligen

Om routes te maken die alleen toegankelijk zijn voor ingelogde gebruikers, gebruik je de auth-middleware.
Wanneer een niet-geauthenticeerde gebruiker toegang probeert te krijgen, wordt deze automatisch doorgestuurd naar /login. Om meerdere routes in één keer te beveiligen, gebruik je een groep.
Als je de auth-middleware vergeet toe te voegen, kunnen niet-ingelogde gebruikers toegang krijgen. Pas deze altijd toe op routes die beveiliging nodig hebben.

Routes alleen voor gasten

Om ingelogde gebruikers door te sturen, gebruik je de guest-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 je Auth::attempt().
Aan het eerste argument van 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 je Auth::logout() aan. Het is een best practice om daarbij ook de sessie ongeldig te maken en het CSRF-token opnieuw te genereren.
Gebruik voor de route de POST-methode.
In een Blade-template verstuur je het POST-request via een formulier.

Samenvatting

Volgende stap

Middleware

Leer in detail hoe de auth-middleware werkt en hoe je je eigen middleware maakt.
Laatst gewijzigd op 6 september 2026