Laravel Sanctum: Pendekatan yang diperkemas untuk pengesahan API dalam aplikasi moden. API adalah penting untuk komunikasi antara platform, dan Sanctum menawarkan penyelesaian ringan untuk melindunginya, memupuk aplikasi yang teguh dan berskala. Panduan ini meneroka persediaan, ciri dan kes penggunaan Sanctum, termasuk SPA dan pengesahan berasaskan token.
Laravel Sanctum memudahkan pengesahan API, menyediakan dua fungsi utama:
Tidak seperti penyelesaian yang lebih kompleks, sifat Sanctum yang ringan dan konfigurasi mudah menjadikannya sempurna untuk aplikasi tanpa keperluan OAuth.
Pasang Sanctum menggunakan Komposer:
<code class="language-bash">composer require laravel/sanctum</code>
Terbitkan fail konfigurasi Sanctum:
<code class="language-bash">php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"</code>
Ini menjana config/sanctum.php
, membenarkan penyesuaian tetapan Sanctum.
Sanctum menggunakan personal_access_tokens
jadual. Cipta jadual ini:
<code class="language-bash">php artisan migrate</code>
Sepadukan perisian tengah Sanctum ke dalam kumpulan api
perisian tengah anda dalam app/Http/Kernel.php
:
<code class="language-php">'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ],</code>
Laluan selamat dalam routes/api.php
menggunakan auth:sanctum
perisian tengah:
<code class="language-php">use Illuminate\Support\Facades\Route; Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });</code>
Jana token akses peribadi menggunakan kaedah createToken
:
<code class="language-php">use App\Models\User; use Illuminate\Http\Request; Route::post('/login', function (Request $request) { $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { return response()->json(['message' => 'Invalid credentials'], 401); } return $user->createToken('auth_token')->plainTextToken; });</code>
Batalkan token pengguna untuk log keluar:
<code class="language-php">Route::post('/logout', function (Request $request) { $request->user()->tokens()->delete(); return response()->json(['message' => 'Logged out successfully']); });</code>
Sanctum memanfaatkan pengesahan berasaskan sesi untuk SPA.
Pastikan EnsureFrontendRequestsAreStateful
perisian tengah dikonfigurasikan dengan betul dalam kumpulan api
perisian tengah.
Hantar token CSRF dengan permintaan AJAX yang disahkan daripada SPA anda:
<code class="language-bash">composer require laravel/sanctum</code>
Laravel Sanctum menawarkan cara yang mesra pengguna dan cekap untuk mendapatkan API untuk aplikasi moden. Reka bentuknya yang ringan dan API yang fleksibel memudahkan pengesahan untuk pembangun, menjadikannya alat yang berharga untuk kedua-dua SPA dan akses API berasaskan token. Eksperimen dengan Sanctum dalam projek anda untuk menghargai sepenuhnya keupayaannya.
Atas ialah kandungan terperinci API Day Building dengan Laravel Sanctum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!