Autentikasi dengan Laravel Sanctum
Terbitkan dan validasi token API menggunakan Sanctum untuk klien SPA dan seluler.
Autentikasi dengan Laravel Sanctum adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Apa itu Sanctum?
Laravel Sanctum menyediakan sistem autentikasi berbasis token yang sederhana untuk SPA dan klien seluler. Sistem ini mendukung token API serta autentikasi berbasis sesi untuk SPA pihak pertama.
Memasang Sanctum
Pasang dan konfigurasikan Sanctum.
$ composer require laravel/sanctum
$ php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
$ php artisan migrateMenerbitkan Token
Buat token akses pribadi untuk pengguna setelah memverifikasi kredensial.
<?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]);
});Trait HasApiTokens
Tambahkan trait HasApiTokens ke model User untuk mengaktifkan pengelolaan token.
<?php
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}Melindungi Rute
Gunakan middleware auth:sanctum untuk melindungi rute API.
<?php
// routes/api.php
Route::middleware("auth:sanctum")->group(function () {
Route::get("/user", fn(Request $r) => $r->user());
Route::apiResource("posts", PostController::class);
});Mengirimkan Token
Klien mengirimkan token dalam header Authorization sebagai token Bearer.
# HTTP header:
Authorization: Bearer 1|AbCdEf1234567890...Cakupan Token (Kemampuan)
Tetapkan kemampuan pada token untuk membatasi tindakan yang dapat dilakukannya.
<?php
// Create token with abilities:
$token = $user->createToken("mobile", ["read:posts", "write:comments"])->plainTextToken;
// Check ability:
if ($user->tokenCan("write:comments")) {
// allowed
}Mencabut Token
Hapus token tertentu atau semua token (keluar dari semua perangkat).
<?php
// Revoke current token (logout):
$request->user()->currentAccessToken()->delete();
// Revoke all tokens (logout everywhere):
$request->user()->tokens()->delete();Kedaluwarsa Token
Tetapkan masa berlaku token dalam config/sanctum.php. Token diperiksa berdasarkan last_used_at dan jangka waktu kedaluwarsanya.
// config/sanctum.php
"expiration" => 60 * 24 * 7, // 7 days in minutesAutentikasi SPA
Untuk SPA pada domain yang sama, Sanctum dapat menggunakan autentikasi berbasis sesi, bukan token. Panggil /sanctum/csrf-cookie terlebih dahulu, lalu gunakan login biasa.
Sanctum vs Passport
Sanctum: token API sederhana dan autentikasi SPA. Passport: server OAuth2 lengkap dengan kode otorisasi, kredensial klien, dan token penyegaran. Mulailah dengan Sanctum; beralihlah ke Passport hanya jika Anda memerlukan OAuth2.
Ringkasan
Sanctum menerbitkan token Bearer untuk autentikasi API. Tambahkan HasApiTokens ke model User. Lindungi rute dengan auth:sanctum. Cabut token saat keluar. Gunakan kemampuan untuk membatasi cakupan izin.
Pemeriksaan Singkat
Bagaimana cara klien menyertakan token Sanctum dalam permintaan API?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Autentikasi dengan Laravel Sanctum” gratis?
Ya — teks lengkap “Autentikasi dengan Laravel Sanctum” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Autentikasi dengan Laravel Sanctum”?
Terbitkan dan validasi token API menggunakan Sanctum untuk klien SPA dan seluler. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Autentikasi dengan Laravel Sanctum” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Rute API dan Controller Sumber Daya
- Sumber Daya API dan Respons JSON
- Autentikasi dengan Laravel Sanctum
- Pembatasan Laju dan Penerapan Versi API