Laravel ialah rangka kerja aplikasi web PHP moden yang menyediakan banyak ciri terbina dalam yang boleh digunakan untuk mengamankan data aplikasi, salah satu yang paling penting ialah bahagian tengah. Menggunakan perisian tengah, kami boleh mengesahkan dan membenarkan permintaan dengan mudah dalam aplikasi kami untuk memastikan data dipindahkan dengan selamat. Artikel ini akan memperkenalkan cara menggunakan perisian tengah untuk penghantaran data selamat dalam Laravel dan menyediakan beberapa contoh kod khusus.
1. Apa itu middleware
Dalam Laravel, middleware ialah mekanisme untuk mengendalikan permintaan HTTP daripada pelanggan. Perisian tengah ini boleh menyemak sama ada permintaan itu dibenarkan dan mengandungi maklumat yang diperlukan. Jika permintaan melepasi semakan middleware, aplikasi mengendalikan permintaan itu. Jika permintaan gagal dalam semakan, perisian tengah boleh memilih untuk menolak permintaan atau mengubah hala permintaan ke tempat lain.
Middleware biasanya digunakan untuk melaksanakan tugas berikut:
2. Prinsip asas menggunakan middleware untuk penghantaran data selamat
Prinsip asas menggunakan middleware untuk penghantaran data selamat dalam Laravel adalah untuk mentakrifkan middleware terlebih dahulu perisian untuk mengendalikan data yang diminta daripada pelanggan. Kemudian, dalam fail laluan, kaitkan laluan yang memerlukan pemindahan data dengan perisian tengah. Middleware kemudian mengendalikan permintaan sebelum ia melalui laluan untuk memastikan permintaan itu disahkan dan data dihantar dengan selamat.
3. Cara menulis middleware
Menulis middleware dalam Laravel adalah sangat mudah. Kita boleh menggunakan alat baris arahan Artisan untuk menjana templat middleware dengan cepat. Berikut ialah contoh:
php artisan make:middleware MyMiddleware
Melaksanakan arahan ini akan mencipta fail middleware baharu "MyMiddleware.php" dalam direktori "app/Http/Middleware". Kod middleware boleh ditakrifkan dalam fail ini.
Kod utama perisian tengah hendaklah berada dalam fungsi "pemegang". Fungsi ini akan menerima permintaan dan mengembalikan respons. Dalam fungsi ini, kami boleh melakukan langkah pengesahan dan kebenaran yang diperlukan untuk memastikan data permintaan dan respons dihantar dengan selamat.
Berikut ialah contoh kod middleware:
namespace AppHttpMiddleware; use Closure; class MyMiddleware { public function handle($request, Closure $next) { // validate and authorize request if ($request->input('password') != '1234') { return response('Unauthorized.', 401); } // proceed with request $response = $next($request); // modify response, if necessary $response->header('X-Header', 'My Middleware'); // return response return $response; } }
Dalam kod middleware ini, kami mula-mula mengesahkan sama ada kata laluan permintaan ialah "1234". Jika kata laluan yang diminta tidak betul, middleware akan mengembalikan respons "Tidak dibenarkan" dengan kod status 401 untuk menolak permintaan tersebut.
Jika kata laluan permintaan adalah betul, perisian tengah akan terus memproses permintaan dan menggunakan pernyataan "$next($request)" untuk menghantar permintaan kepada perisian tengah atau laluan seterusnya. Dalam contoh kami, kami hanya mempunyai satu perisian tengah, jadi kenyataan ini menghantar permintaan ke dalam laluan.
Akhir sekali, perisian tengah akan menyemak sama ada respons memerlukan pengubahsuaian dan menambah pengepala HTTP tersuai yang dipanggil "X-Header". Akhir sekali, middleware akan mengembalikan respons untuk melengkapkan aliran pemprosesan permintaan.
4. Cara mengaitkan middleware dengan penghalaan
Dalam Laravel, anda boleh mengaitkan middleware dengan laluan tertentu dalam fail penghalaan. Untuk melakukan ini, kita perlu menggunakan fungsi "middleware" untuk menentukan middleware untuk digunakan. Berikut ialah contoh kod penghalaan:
Route::get('/', function () { return view('welcome'); })->middleware('mymiddleware');
Dalam contoh ini, kami mengaitkan laluan "/" dengan perisian tengah bernama "mymiddleware".
Jika anda perlu mengaitkan berbilang middleware dengan laluan, anda boleh menggunakan tatasusunan untuk menentukan middleware ini. Berikut ialah contoh kod:
Route::get('/', function () { return view('welcome'); })->middleware(['firstmiddleware', 'secondmiddleware']);
Dalam contoh ini, kami mengaitkan laluan "/" dengan dua middleware bernama "firstmiddleware" dan "secondmiddleware".
Dalam Laravel, middleware boleh ditakrifkan secara global atau dalam kumpulan. Perisian tengah global akan digunakan untuk semua laluan, manakala perisian pertengahan kumpulan akan digunakan untuk kumpulan laluan tertentu. Jika anda perlu menggunakan perisian tengah sepanjang aplikasi anda, anda boleh menambahkannya pada tatasusunan "$middleware". Berikut ialah beberapa contoh kod:
// 在全局中定义中间件 protected $middleware = [ AppHttpMiddlewareMyGlobalMiddleware::class, ]; // 在组别中定义中间件 Route::middleware(['auth', 'throttle:60,1'])->group(function () { Route::get('/', function () { return view('welcome'); }); });
Dalam contoh ini, kami mentakrifkan perisian tengah global bernama "MyGlobalMiddleware" dan menambahkannya pada tatasusunan "$middleware" pada masa yang sama, dalam kumpulan laluan, kami tentukan dua perisian tengah: "auth" dan "throttle".
5. Amalan terbaik untuk menggunakan perisian tengah untuk penghantaran data selamat
Berikut ialah beberapa amalan terbaik untuk menggunakan perisian tengah untuk penghantaran data selamat:
#🎜 🎜## 🎜🎜#Gunakan protokol HTTPS untuk menyulitkan data yang dihantarJika aplikasi anda menggunakan API, anda boleh menggunakan pengesahan token untuk memastikan permintaan API dihantar dengan selamat . Cuma laksanakan logik pengesahan token dalam middleware.
6. Kesimpulan
Middleware ialah alat berkuasa yang disediakan oleh Laravel yang boleh digunakan untuk melindungi keselamatan data dan memastikan permintaan dan respons dihantar dengan selamat. Dalam artikel ini, kami memperkenalkan cara menulis dan menggunakan perisian tengah untuk penghantaran data yang selamat, serta amalan terbaik yang berkaitan. Kami harap anda mendapati contoh dan cadangan yang disediakan dalam artikel ini berguna.
Atas ialah kandungan terperinci Cara menggunakan perisian tengah untuk penghantaran data selamat dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!