Pengesahan dengan Laravel Sanctum
Keluarkan dan sahkan token API menggunakan Sanctum untuk klien SPA dan mudah alih.
Pengesahan dengan Laravel Sanctum ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah Sanctum?
Laravel Sanctum menyediakan sistem pengesahan berasaskan token yang ringkas untuk SPA dan klien mudah alih. Ia menyokong token API dan pengesahan berasaskan 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 migrateMengeluarkan Token
Jana token akses peribadi untuk pengguna selepas mengesahkan kelayakan mereka.
<?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]);
});Sifat HasApiTokens
Tambahkan sifat HasApiTokens pada model User Anda untuk mengaktifkan pengurusan token.
<?php
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}Melindungi Laluan
Gunakan middleware auth:sanctum untuk melindungi laluan API.
<?php
// routes/api.php
Route::middleware("auth:sanctum")->group(function () {
Route::get("/user", fn(Request $r) => $r->user());
Route::apiResource("posts", PostController::class);
});Menghantar Token
Klien menghantar token dalam pengepala Authorization sebagai token Bearer.
# HTTP header:
Authorization: Bearer 1|AbCdEf1234567890...Skop Token (Keupayaan)
Berikan keupayaan kepada token untuk mengehadkan tindakan yang boleh dilakukannya.
<?php
// Create token with abilities:
$token = $user->createToken("mobile", ["read:posts", "write:comments"])->plainTextToken;
// Check ability:
if ($user->tokenCan("write:comments")) {
// allowed
}Membatalkan Token
Padamkan token tertentu atau semua token (log keluar daripada semua peranti).
<?php
// Revoke current token (logout):
$request->user()->currentAccessToken()->delete();
// Revoke all tokens (logout everywhere):
$request->user()->tokens()->delete();Tamat Tempoh Token
Tetapkan tamat tempoh token dalam config/sanctum.php. Token disemak berdasarkan last_used_at dan tempoh tamat.
// config/sanctum.php
"expiration" => 60 * 24 * 7, // 7 days in minutesPengesahan SPA
Untuk SPA dalam domain yang sama, Sanctum boleh menggunakan pengesahan berasaskan sesi dan bukannya token. Panggil /sanctum/csrf-cookie dahulu, kemudian gunakan log masuk biasa.
Sanctum berbanding Passport
Sanctum: token API ringkas dan pengesahan SPA. Passport: pelayan OAuth2 penuh dengan kod kebenaran, kelayakan klien dan token penyegaran. Mulakan dengan Sanctum; beralih kepada Passport hanya jika Anda memerlukan OAuth2.
Ringkasan
Sanctum mengeluarkan token Bearer untuk pengesahan API. Tambahkan HasApiTokens pada model User. Lindungi laluan dengan auth:sanctum. Batalkan token semasa log keluar. Gunakan keupayaan untuk mengehadkan skop keizinan.
Semakan Pantas
Bagaimanakah klien menyertakan token Sanctum dalam permintaan API?
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Pengesahan dengan Laravel Sanctum” percuma?
Ya — teks penuh “Pengesahan dengan Laravel Sanctum” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pengesahan dengan Laravel Sanctum”?
Keluarkan dan sahkan token API menggunakan Sanctum untuk klien SPA dan mudah alih. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Pengesahan dengan Laravel Sanctum” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Laluan API dan Pengawal Sumber
- Sumber API dan Respons JSON
- Pengesahan dengan Laravel Sanctum
- Pengehadan Kadar dan Pemversian API