Was ist Authentifizierung
Authentifizierung ist der Vorgang, mit dem festgestellt wird, wer der zugreifende Benutzer ist. In Webanwendungen nimmt ein Login-Formular E-Mail und Passwort entgegen und speichert bei korrekten Angaben die Benutzerinformationen in der Session. Bei nachfolgenden Anfragen wird der Benutzer über diese Session identifiziert. Die Authentifizierung in Laravel basiert auf zwei Konzepten: „Guards” und „Providers”.- Guards: Definieren, wie Benutzer bei jeder Anfrage authentifiziert werden. Der Standard ist der
session-Guard, der Zustand über Session und Cookies verwaltet. - Providers: Definieren, wie Benutzer aus der Datenbank abgerufen werden. Der Standard nutzt Eloquent.
Die Konfigurationsdatei für die Authentifizierung ist
config/auth.php. Für die meisten Webanwendungen reicht die Standardkonfiguration aus.Authentifizierung per Starter Kit
Wenn Sie eine Anwendung mitlaravel new erstellen und ein Starter Kit auswählen, werden Login, Registrierung, Passwort-Reset und weitere Auth-Funktionen automatisch erzeugt. Das ist der empfohlene Weg.
Anwendung erstellen
Legen Sie die Anwendung mit dem Laravel Installer an. Unterwegs erscheint eine Auswahl für das Starter Kit.Als Starter Kit stehen React, Vue, Livewire und Svelte zur Auswahl.
Wählen Sie es entsprechend Ihres Tech-Stacks aus.
Datenbank vorbereiten
Prüfen Sie die Datenbank-Konfiguration in Die initialen Migrationen einschließlich der Tabelle
.env und führen Sie die Migrationen aus.users werden angewendet.| Funktion | URL |
|---|---|
| Benutzerregistrierung | /register |
| Login | /login |
| Passwort-Reset | /forgot-password |
| E-Mail-Bestätigung | /email/verify |
| Profil bearbeiten | /settings/profile |
Verfügbare Starter Kits
React
Baut eine moderne SPA mit React 19, TypeScript, Tailwind und shadcn/ui. Dank Inertia behalten Sie das serverseitige Routing bei und nutzen gleichzeitig ein React-Frontend.Vue
Setzt auf die Vue Composition API, TypeScript, Tailwind und shadcn-vue. Wie bei React wird Inertia zur Verbindung mit dem Server verwendet.Livewire
Verwendet Livewire, sodass Sie dynamische UIs allein mit PHP aufbauen. Ideal für Teams, die auf Blade-Templates fokussiert sind oder ohne JavaScript-Framework auskommen möchten. Enthält die Komponentenbibliothek Flux UI.Svelte
Verwendet Svelte 5, TypeScript, Tailwind und shadcn-svelte. In Kombination mit Inertia bauen Sie eine moderne SPA.Die Auth-Facade
Mit der FacadeAuth rufen Sie Informationen des aktuell angemeldeten Benutzers ab und prüfen dessen Authentifizierungsstatus.
Angemeldeten Benutzer abrufen
Request-Objekt abrufen.
Authentifizierungsstatus prüfen
Auth::check() liefert true/false, je nachdem ob ein Benutzer angemeldet ist.
@auth und @guest praktisch.
Routen schützen
Um Routen ausschließlich für angemeldete Benutzer zugänglich zu machen, verwenden Sie die Middlewareauth.
/login weitergeleitet.
Um mehrere Routen gleichzeitig zu schützen, verwenden Sie eine Gruppe.
Routen nur für Gäste
Um bereits angemeldete Benutzer weiterzuleiten, verwenden Sie die Middlewareguest.
Wenden Sie sie zum Beispiel auf Login- oder Register-Seiten an, damit bereits eingeloggte Benutzer ans Dashboard geleitet werden.
Manuelle Authentifizierung
Wenn Sie ohne Starter Kit selbst einen Login umsetzen, nutzen SieAuth::attempt().
Auth::attempt() als erstes Argument ein Array mit Anmeldedaten.
Das Passwort wird automatisch gegen den Hash verglichen – übergeben Sie es also im Klartext.
Um „Angemeldet bleiben” zu unterstützen, übergeben Sie im zweiten Argument true.
Auch bei manueller Umsetzung sollten Sie den Code aus dem Starter Kit als Referenz für eine sichere Implementierung nutzen.
Logout
Zum Ausloggen rufen SieAuth::logout() auf.
Zusätzlich sollten Sie die Session invalidieren und das CSRF-Token neu generieren.
Zusammenfassung
| Aufgabe | Weg |
|---|---|
| Auth-Funktionen schnell hinzufügen | Starter Kit (laravel new) |
| Aktuellen Benutzer abrufen | Auth::user() / $request->user() |
| Login-Status prüfen | Auth::check() |
| Routen schützen | ->middleware('auth') |
| Manuell einloggen | Auth::attempt($credentials) |
| Ausloggen | Auth::logout() |
Nächste Schritte
Middleware
Lernen Sie die Funktionsweise der
auth-Middleware und wie Sie eigene Middleware schreiben.