Rumah > pembangunan bahagian belakang > tutorial php > API Day Building dengan Laravel Sanctum

API Day Building dengan Laravel Sanctum

Barbara Streisand
Lepaskan: 2025-01-09 14:05:41
asal
932 orang telah melayarinya

Day Building APIs with Laravel Sanctum

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.

Memahami Laravel Sanctum

Laravel Sanctum memudahkan pengesahan API, menyediakan dua fungsi utama:

  • Pengesahan berasaskan token: Sesuai untuk API yang diakses oleh perkhidmatan luaran atau aplikasi mudah alih.
  • Pengesahan berasaskan sesi: Paling sesuai untuk aplikasi satu halaman (SPA) yang bahagian depan dan belakang berkongsi domain yang sama.

Tidak seperti penyelesaian yang lebih kompleks, sifat Sanctum yang ringan dan konfigurasi mudah menjadikannya sempurna untuk aplikasi tanpa keperluan OAuth.

Melaksanakan Laravel Sanctum

Langkah 1: Pemasangan

Pasang Sanctum menggunakan Komposer:

<code class="language-bash">composer require laravel/sanctum</code>
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Konfigurasi Penerbitan

Terbitkan fail konfigurasi Sanctum:

<code class="language-bash">php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"</code>
Salin selepas log masuk

Ini menjana config/sanctum.php, membenarkan penyesuaian tetapan Sanctum.

Langkah 3: Migrasi Pangkalan Data

Sanctum menggunakan personal_access_tokens jadual. Cipta jadual ini:

<code class="language-bash">php artisan migrate</code>
Salin selepas log masuk

Langkah 4: Konfigurasi Perisian Tengah

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>
Salin selepas log masuk

Pengesahan Berasaskan Token dalam Amalan

Langkah 1: Perlindungan Laluan

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>
Salin selepas log masuk

Langkah 2: Penjanaan Token

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>
Salin selepas log masuk

Langkah 3: Pembatalan Token

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>
Salin selepas log masuk

Penyatuan Aplikasi Satu Halaman (SPA)

Sanctum memanfaatkan pengesahan berasaskan sesi untuk SPA.

Langkah 1: Perlindungan CSRF

Pastikan EnsureFrontendRequestsAreStateful perisian tengah dikonfigurasikan dengan betul dalam kumpulan api perisian tengah.

Langkah 2: Konfigurasi Bahagian Hadapan

Hantar token CSRF dengan permintaan AJAX yang disahkan daripada SPA anda:

<code class="language-bash">composer require laravel/sanctum</code>
Salin selepas log masuk
Salin selepas log masuk

Amalan Terbaik Keselamatan

  • Keselamatan Token: Simpan token dengan selamat (cth., dalam kuki HTTP sahaja) dan cegah pendedahan pihak pelanggan.
  • Tamat Tempoh Token: Laksanakan tamat tempoh token untuk mengurangkan risiko yang berkaitan dengan token yang bocor.
  • Penghadan Skop: Tentukan skop khusus untuk token mengawal kebenarannya.

Kesimpulan

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan