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.
userstabel en een Usermodel: die zitten standaard in Laravel. Draai je migraties en maak een testgebruiker via een seeder of Tinker.Auth::attempt(). Roep daarna altijd $request->session()->regenerate() aan — zoek op wat "session fixation" is en leg uit waarom dit nodig is.Auth::logout() plus het ongeldig maken van de sessie. Doe dit via een POST-formulier, niet via een gewone link. Zoek uit waarom.authmiddleware.@auth / @guest.confirmedvalidatieregel.// 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')]);
passwordkolom in casts() op hashed staat, of gebruik Hash::make().