Uwierzytelnianie za pomocą Laravel Sanctum
Wystawiaj i weryfikuj tokeny API za pomocą Sanctum dla klientów SPA i mobilnych
Uwierzytelnianie za pomocą Laravel Sanctum to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.
Czym jest Sanctum?
Laravel Sanctum udostępnia prosty system uwierzytelniania oparty na tokenach dla aplikacji SPA i klientów mobilnych. Obsługuje zarówno tokeny API, jak i uwierzytelnianie oparte na sesji dla aplikacji SPA pierwszej strony.
Instalowanie Sanctum
Należy zainstalować i skonfigurować Sanctum.
$ composer require laravel/sanctum
$ php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
$ php artisan migrateWydawanie tokenów
Po zweryfikowaniu danych uwierzytelniających należy wygenerować osobisty token dostępu dla użytkownika.
<?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]);
});Cecha HasApiTokens
Należy dodać cechę HasApiTokens do modelu User, aby włączyć zarządzanie tokenami.
<?php
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}Ochrona tras
Do ochrony tras API należy używać middleware auth:sanctum.
<?php
// routes/api.php
Route::middleware("auth:sanctum")->group(function () {
Route::get("/user", fn(Request $r) => $r->user());
Route::apiResource("posts", PostController::class);
});Wysyłanie tokenu
Klienci wysyłają token w nagłówku Authorization jako token Bearer.
# HTTP header:
Authorization: Bearer 1|AbCdEf1234567890...Zakresy tokenów (uprawnienia)
Do tokenów należy przypisywać uprawnienia, aby ograniczyć działania, które mogą one wykonywać.
<?php
// Create token with abilities:
$token = $user->createToken("mobile", ["read:posts", "write:comments"])->plainTextToken;
// Check ability:
if ($user->tokenCan("write:comments")) {
// allowed
}Unieważnianie tokenów
Należy usunąć określony token lub wszystkie tokeny (wylogowanie ze wszystkich urządzeń).
<?php
// Revoke current token (logout):
$request->user()->currentAccessToken()->delete();
// Revoke all tokens (logout everywhere):
$request->user()->tokens()->delete();Wygasanie tokenów
Wygaśnięcie tokenów należy ustawić w pliku config/sanctum.php. Tokeny są sprawdzane względem wartości last_used_at i przedziału wygaśnięcia.
// config/sanctum.php
"expiration" => 60 * 24 * 7, // 7 days in minutesUwierzytelnianie SPA
W przypadku aplikacji SPA działających w tej samej domenie Sanctum może używać uwierzytelniania opartego na sesji zamiast tokenów. Najpierw należy wywołać /sanctum/csrf-cookie, a następnie użyć zwykłego logowania.
Sanctum a Passport
Sanctum: proste tokeny API i uwierzytelnianie SPA. Passport: pełny serwer OAuth2 z kodami autoryzacyjnymi, poświadczeniami klienta i tokenami odświeżania. Należy zacząć od Sanctum i przejść na Passport tylko wtedy, gdy potrzebny jest OAuth2.
Podsumowanie
Sanctum wydaje tokeny Bearer do uwierzytelniania API. Należy dodać HasApiTokens do modelu User. Trasy należy chronić za pomocą auth:sanctum. Przy wylogowaniu należy unieważniać tokeny. Do ograniczania uprawnień należy używać abilities.
Szybkie sprawdzenie
Jak klient dołącza token Sanctum do żądań API?
Często zadawane pytania
Czy lekcja „Uwierzytelnianie za pomocą Laravel Sanctum” jest bezpłatna?
Tak — pełny tekst „Uwierzytelnianie za pomocą Laravel Sanctum” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uwierzytelnianie za pomocą Laravel Sanctum”?
Wystawiaj i weryfikuj tokeny API za pomocą Sanctum dla klientów SPA i mobilnych Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Uwierzytelnianie za pomocą Laravel Sanctum”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Trasy API i kontrolery zasobów
- Zasoby API i odpowiedzi JSON
- Uwierzytelnianie za pomocą Laravel Sanctum
- Ograniczanie częstotliwości i wersjonowanie API