App\Middleware
AuthMiddleware
Prüft ob eine gültige Session existiert. Bei fehlender Authentifizierung wird automatisch auf /login weitergeleitet.
Interface
Alle Middleware-Klassen implementieren App\Routing\MiddlewareInterface:
PHP
interface MiddlewareInterface
{
public function handle(Request $request, Closure $next): Response;
}
Methoden
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
| handle(Request \$request, Closure \$next) | Response | Startet die Session falls noch nicht gestartet. Prüft ob \$_SESSION[\"user_id\"] gesetzt ist. Bei fehlendem Wert: Redirect zu /login. Sonst: \$next(\$request) aufrufen. |
Verwendung
PHP
// Auf einzelne Route anwenden
$router->get("/dashboard", DashboardController::class, "index")
->middleware(AuthMiddleware::class);
// Auf Gruppe anwenden
$router->group("admin", [AuthMiddleware::class], function(Router $r) {
$r->get("/overview", AdminController::class, "index");
$r->get("/users", AdminController::class, "users");
});
// Login setzen (z.B. im AuthController)
$_SESSION["user_id"] = $user->id;
// Logout
session_destroy();
return Response::redirect("/login");