Laravel ialah rangka kerja aplikasi web yang dibangunkan menggunakan bahasa pengaturcaraan PHP Prestasi cemerlangnya adalah disebabkan oleh penyepaduan dalaman sejumlah besar pakej sambungan yang berkuasa. Ini termasuk pelaksanaan asas Token. Token ialah kaedah pengesahan yang biasa digunakan dalam aplikasi web, dan biasanya digunakan untuk melindungi API dan perkhidmatan web daripada akses haram. Dalam artikel ini, kami akan memperkenalkan mekanisme pelaksanaan Token dalam Laravel.
1. Konsep token
Token, seperti namanya, merujuk kepada token, tanda yang boleh mewakili beberapa jenis maklumat identiti atau maklumat kebenaran. Ia biasanya dijana oleh pelayan dan dikeluarkan kepada klien Selepas klien menerima token, ia disimpan secara setempat dan ditambahkan pada pengepala permintaan atau parameter permintaan dalam permintaan seterusnya sebagai pengenalan pengesahan atau kebenaran. Pelayan boleh menentukan sama ada permintaan itu mempunyai maklumat pengesahan atau kebenaran dengan menyemak sama ada token itu sah.
Penggunaan token boleh melindungi aplikasi web dengan lebih berkesan daripada akses yang tidak dibenarkan, terutamanya dalam API dan perkhidmatan web, token adalah penting.
2. Pelaksanaan Token Laravel
Sebagai rangka kerja aplikasi web yang sangat baik, Laravel menyediakan sokongan Token dalam fungsi Auth terbina dalamnya. Dalam Laravel, Token dilaksanakan menggunakan pakej sambungan Laravel Sanctum.
2.1 Laravel Sanctum
Laravel Sanctum ialah pakej pengesahan ringan yang boleh menyediakan pengesahan API untuk aplikasi Laravel, berdasarkan kunci API atau Token, menjadikan aplikasi lebih baik Dijalankan dalam persekitaran tanpa negara, seperti SPA aplikasi, aplikasi halaman tunggal dan aplikasi mudah alih. Laravel Sanctum menyediakan fungsi berikut:
Dalam Laravel Sanctum, prinsip pelaksanaan Token adalah serupa dengan prinsip pelaksanaan sesi. Dalam permintaan, apabila klien membuat permintaan kepada pelayan, Token dihantar ke pelayan sebagai parameter permintaan atau medan Kebenaran dalam pengepala. Pelayan menyemak sama ada Token itu sah, dan dalam tempoh sah, memberikan kebenaran untuk operasi yang diminta atau mengembalikan mesej ralat. Proses pelaksanaan Token adalah seperti berikut:
Buat Token: Apabila pengguna log masuk, Sanctum akan menjana Token rawak untuk pengguna dan menyimpan Token dalam pangkalan data latar belakang; > Hantar Token: Hantar Token ke pelayan sebagai parameter permintaan atau medan Kebenaran dalam Pengepala3.1 Pasang Sanctum
Dalam aplikasi, anda perlu terlebih dahulu memperkenalkan pakej kebergantungan Sanctum ke dalam fail composer.json aplikasi:
Selepas pemasangan selesai, anda perlu menambah konfigurasi berikut pada fail config/app.php:composer require laravel/sanctum
'providers' => [ // Other service providers... Laravel\Sanctum\SanctumServiceProvider::class, ],
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
3.4 Cipta Token
Selepas log masuk, anda boleh menggunakan kod berikut untuk mencipta Token untuk pengguna semasa:
Dalam kod di atas, anda boleh melihat bahawa token dicipta Token, gunakan Ejen Pengguna mesin sebagai parameter tambahan. Ejen Pengguna di sini ialah pengepala HTTP yang merekodkan maklumat berkaitan penyemak imbas atau aplikasi. Maklumat ini akan digunakan sebagai sebahagian daripada Token, supaya apabila Token dicuri atau digunakan secara berniat jahat, ia boleh ditemui dengan mudah dan dibatalkan. 3.5 Batal Tokenuse Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; // 创建Token Route::post('/api/token/create', function (Request $request) { $request->validate([ 'email' => 'required|email', '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.'], ]); } return $user->createToken($request->header('User-Agent'))->plainTextToken; });
Setelah Token yang dibuat dicuri atau tidak sah, ia boleh dibatalkan menggunakan kod berikut:
3.6 Sambungan PengesahanSanctum juga Menyediakan sambungan pengesahan yang baik, yang boleh memudahkan kawalan akses Kod adalah seperti berikut:Auth::user()->tokens()->delete();
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; }
$request->user()->can('update', $post);
Dalam artikel ini, kami memperkenalkan mekanisme pelaksanaan asas Token dalam Laravel, terutamanya cara menggunakan pakej sambungan Sanctum. Sanctum menyediakan API yang mudah dan mudah digunakan yang boleh disepadukan dengan cepat ke dalam aplikasi dan meningkatkan keselamatan aplikasi. Penggunaan, penciptaan, pembatalan dan pengurusan Token, serta kawalan akses semuanya dijelaskan secara terperinci.
Dalam dunia Internet hari ini, dengan aplikasi API dan perkhidmatan Web yang meluas, Token, sebagai kaedah pengesahan, akan digunakan dengan lebih meluas dalam banyak aplikasi. Rangka kerja Laravel menyediakan mekanisme pelaksanaan Token yang baik yang boleh melindungi aplikasi web daripada akses haram dengan lebih baik.
Atas ialah kandungan terperinci Artikel yang memperkenalkan mekanisme pelaksanaan Token dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!