Wat ga je maken? Bezoekers kunnen een account maken, inloggen en uitloggen. Bepaalde pagina's zijn alleen zichtbaar als je ingelogd bent.

Waarom is dit nuttig? Zonder login geen beheerpaneel. Dit is de fundering onder opdracht 8.

Belangrijk: je mag geen kant-en-klare starter kit installeren die alles voor je doet. Je bouwt dit zelf met de Auth-facade. Laravel regelt alleen het lastige deel (hashing en sessies) — de rest snap je straks regel voor regel.

Stappenplan

  1. Je hebt al een userstabel en een Usermodel: die zitten standaard in Laravel. Draai je migraties en maak een testgebruiker via een seeder of Tinker.
  2. Bouw de route + view + controller voor het loginformulier.
  3. Log in met Auth::attempt(). Roep daarna altijd $request->session()->regenerate() aan — zoek op wat "session fixation" is en leg uit waarom dit nodig is.
  4. Bouw uitloggen: Auth::logout() plus het ongeldig maken van de sessie. Doe dit via een POST-formulier, niet via een gewone link. Zoek uit waarom.
  5. Beveilig je pagina's met de authmiddleware.
  6. Toon in je navigatie de naam van de ingelogde gebruiker met @auth / @guest.
  7. Bouw daarna registreren, met wachtwoordbevestiging en de confirmedvalidatieregel.

Kleine hulpmiddelen

// Inloggen
if (Auth::attempt($request->only('email', 'password'), $request->boolean('remember'))) {
    $request->session()->regenerate();
    return redirect()->intended('/dashboard');
}

return back()->withErrors(['email' => 'Deze gegevens kloppen niet.'])->onlyInput('email');
// Uitloggen
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
// routes/web.php
Route::get('/dashboard', DashboardController::class)->middleware('auth');
# Snel een testgebruiker maken
php artisan tinker
>>> App\Models\User::factory()->create(['email' => '[email protected]', 'password' => bcrypt('wachtwoord')]);

Valkuilen