Rumah >rangka kerja php >Laravel >Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan dan kebenaran API menggunakan Laravel Sanctum?
Laravel ialah rangka kerja pembangunan web PHP yang popular yang menyediakan banyak ciri dan alatan berkuasa untuk memudahkan pembangunan dan penyelenggaraan aplikasi web. Laravel Sanctum ialah pemalam untuk rangka kerja Laravel yang menyediakan keupayaan pengesahan dan kebenaran API untuk melindungi titik akhir API anda daripada akses tanpa kebenaran dengan mudah.
Dalam artikel ini, kita akan mempelajari cara melaksanakan pengesahan dan kebenaran API menggunakan Laravel Sanctum.
1. Apakah itu Laravel Sanctum?
Laravel Sanctum ialah pakej pengesahan ringan yang menyediakan fungsi pengesahan dan kebenaran API yang ringkas namun berkuasa. Ia berdasarkan perisian tengah Laravel dan pengesahan HTTP, membolehkan kami melampirkan token pengesahan dengan selamat pada permintaan API.
Laravel Sanctum menyokong dua kaedah pengesahan: Pengesahan berasaskan kuki dan pengesahan berasaskan Token. Pengesahan berasaskan kuki menggunakan perisian tengah Laravel untuk mengesahkan bahawa kuki pengesahan yang sah terdapat dalam permintaan. Satu lagi cara untuk mengesahkan Token dalam kelas Header dan semak sama ada ia sah.
2. Pasang Laravel Sanctum
Sebelum kita mula, kita perlu memasang Laravel Sanctum terlebih dahulu. Laravel Sanctum boleh dipasang dengan mudah menggunakan pengurus pakej komposer:
composer require laravel/sanctum
Sudah tentu, ia juga boleh dipasang secara manual dengan menambahkan keperluan berikut dalam fail composer.json:
{ "require": { "laravel/sanctum": "^2.9" } }
Setelah selesai, jalankan Perintah berikut untuk menerbitkan fail konfigurasi Laravel Sanctum dan fail pemindahan pangkalan data:
php artisan vendor:publish --tag=sanctum-config php artisan vendor:publish --tag=sanctum-migrations php artisan migrate
3. Konfigurasikan Laravel Sanctum
Ubah suai fail app/Http/kernel.php dan tambah perisian tengah Sanctum:
// app/Http/Kernel.php protected $middleware = [ // ... LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, ]; protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, 'throttle:api', IlluminateRoutingMiddlewareSubstituteBindings::class, ], ];
Ini akan memastikan pengesahan berasaskan kuki Sanctum boleh digunakan semasa setiap permintaan.
Buka fail config/auth.php, cari lalai dan pengawal dan konfigurasikannya untuk menggunakan sanctum.
// config/auth.php 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'sanctum', 'provider' => 'users', 'hash' => false, ], ],
Ini akan membolehkan kami menggunakan Sanctum untuk pengesahan berasaskan token.
Jika anda menggunakan versi baharu Laravel, anda tidak perlu menambah pembekal. Jika anda menggunakan versi yang lebih lama, sila buka fail config/app.php dan tambah baris berikut dalam tatasusunan penyedia:
LaravelSanctumSanctumServiceProvider::class,
4. Cipta Token Kebenaran
Sekarang, kami telah mengkonfigurasi Laravel Sanctum, seterusnya kita akan belajar cara menggunakan Sanctum untuk mencipta token kebenaran.
public function createToken(Request $request) { $user = Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]); if($user) { $token = $user->createToken('API Token')->plainTextToken; return response()->json([ 'token' => $token, ]); } else { return response()->json([ 'message' => 'Invalid credentials', ], 401); } }
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
5. Laksanakan pengesahan dan kebenaran API
Selepas mencipta token kebenaran, kami boleh menggunakan Sanctum untuk melindungi titik akhir API daripada Akses tanpa kebenaran. Kita boleh menggunakan perisian tengah penghalaan Laravel untuk menyemak token pengesahan dan menafikan akses tanpa kebenaran.
// routes/api.php Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
Laluan ini akan dilindungi menggunakan perisian tengah Sanctum auth.
php artisan serve
Kini, laluan /api/pengguna boleh diakses untuk melihat butiran pengguna yang log masuk. Kini, tanpa pengepala Kebenaran, anda tidak akan dapat mengaksesnya dan akan mengembalikan kod status HTTP 401 Tanpa Kebenaran.
6. Menamatkan
Laravel Sanctum ialah penyelesaian pengesahan dan kebenaran yang berkuasa dan mudah digunakan yang boleh melaksanakan pengesahan dan kebenaran dengan mudah dalam aplikasi web dan API web Laravel. Ia dengan mudah melindungi titik akhir API anda daripada akses tanpa kebenaran dan membolehkan anda mengawal pengguna mana yang boleh mengakses titik akhir API dengan mudah. Dalam artikel ini, kami mempelajari cara memasang dan mengkonfigurasi Laravel Sanctum dan melihat cara menggunakannya untuk mencipta token kebenaran dan melaksanakan pengesahan dan kebenaran API.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan dan kebenaran API menggunakan Laravel Sanctum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!