0Pricing
PHP Academy · Lektion

Authentifizierung mit Laravel Sanctum

Stellen und validieren Sie API-Tokens mit Sanctum für SPA- und mobile Clients aus.

Authentifizierung mit Laravel Sanctum ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Sanctum?

Laravel Sanctum stellt ein einfaches tokenbasiertes Authentifizierungssystem für SPAs und mobile Clients bereit. Es unterstützt sowohl API-Tokens als auch sitzungsbasierte Authentifizierung für First-Party-SPAs.

Sanctum installieren

Installieren und konfigurieren Sie Sanctum.

$ composer require laravel/sanctum
$ php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
$ php artisan migrate

Tokens ausstellen

Generieren Sie nach der Überprüfung der Anmeldedaten ein persönliches Zugriffstoken für einen Benutzer.

<?php
Route::post("/login", function (Request $request) {
    $request->validate(["email" => "required", "password" => "required"]);
    $user = User::where("email", $request->email)->first();
    if (!$user || !Hash::check($request->password, $user->password)) {
        throw ValidationException::withMessages([
            "email" => ["The provided credentials are incorrect."],
        ]);
    }
    $token = $user->createToken("mobile-app")->plainTextToken;
    return response()->json(["token" => $token]);
});

HasApiTokens-Trait

Fügen Sie Ihrem User-Modell das Trait HasApiTokens hinzu, um die Tokenverwaltung zu aktivieren.

<?php
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;
}

Routen schützen

Verwenden Sie die Middleware auth:sanctum, um API-Routen zu schützen.

<?php
// routes/api.php
Route::middleware("auth:sanctum")->group(function () {
    Route::get("/user",  fn(Request $r) => $r->user());
    Route::apiResource("posts", PostController::class);
});

Das Token senden

Clients senden das Token im Authorization-Header als Bearer-Token.

# HTTP header:
Authorization: Bearer 1|AbCdEf1234567890...

Token-Bereiche (Abilities)

Weisen Sie Tokens Abilities zu, um einzuschränken, welche Aktionen sie ausführen dürfen.

<?php
// Create token with abilities:
$token = $user->createToken("mobile", ["read:posts", "write:comments"])->plainTextToken;

// Check ability:
if ($user->tokenCan("write:comments")) {
    // allowed
}

Tokens widerrufen

Löschen Sie ein bestimmtes Token oder alle Tokens (Abmeldung auf allen Geräten).

<?php
// Revoke current token (logout):
$request->user()->currentAccessToken()->delete();

// Revoke all tokens (logout everywhere):
$request->user()->tokens()->delete();

Token-Ablauf

Setzen Sie den Token-Ablauf in config/sanctum.php fest. Tokens werden anhand von last_used_at und des Ablaufzeitraums geprüft.

// config/sanctum.php
"expiration" => 60 * 24 * 7, // 7 days in minutes

SPA-Authentifizierung

Für SPAs unter derselben Domain kann Sanctum statt Tokens eine sitzungsbasierte Authentifizierung verwenden. Rufen Sie zuerst /sanctum/csrf-cookie auf und verwenden Sie anschließend die normale Anmeldung.

Sanctum im Vergleich zu Passport

Sanctum: einfache API-Tokens und SPA-Authentifizierung. Passport: vollständiger OAuth2-Server mit Autorisierungscodes, Client-Credentials und Refresh-Tokens. Beginnen Sie mit Sanctum und wechseln Sie nur zu Passport, wenn Sie OAuth2 benötigen.

Zusammenfassung

Sanctum stellt Bearer-Tokens für die API-Authentifizierung aus. Fügen Sie dem User-Modell HasApiTokens hinzu. Schützen Sie Routen mit auth:sanctum. Widerrufen Sie Tokens bei der Abmeldung. Verwenden Sie Abilities, um Berechtigungen einzuschränken.

Kurzer Check

Wie fügt ein Client ein Sanctum-Token in API-Requests ein?

Häufig gestellte Fragen

Ist die Lektion „Authentifizierung mit Laravel Sanctum“ kostenlos?

Ja — der vollständige Text von „Authentifizierung mit Laravel Sanctum“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Authentifizierung mit Laravel Sanctum“?

Stellen und validieren Sie API-Tokens mit Sanctum für SPA- und mobile Clients aus. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PHP Academy zu starten?

Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Authentifizierung mit Laravel Sanctum“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?

Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. API-Routen und Ressourcencontroller
  2. API-Ressourcen und JSON-Antworten
  3. Authentifizierung mit Laravel Sanctum
  4. Ratenbegrenzung und API-Versionierung
← Zurück zu PHP Academy