Rumah > rangka kerja php > Laravel > teks badan

Apakah yang perlu saya lakukan jika perisian tengah laravel tidak berkuat kuasa?

PHPz
Lepaskan: 2023-04-23 09:38:08
asal
1040 orang telah melayarinya

Apabila membangunkan aplikasi menggunakan rangka kerja Laravel, jika anda perlu melakukan beberapa pengesahan atau pemprosesan atas permintaan, anda boleh menggunakan perisian tengah. Middleware ialah ciri yang sangat berkuasa dalam Laravel Ia boleh memproses permintaan aplikasi untuk mencapai beberapa tujuan tertentu, seperti pengesahan, pengelogan, pertahanan pemalsuan permintaan merentas tapak (CSRF), dsb.

Namun, apabila menggunakan perisian tengah Laravel, kadangkala kita menghadapi beberapa masalah, salah satunya ialah perisian tengah tidak berkuat kuasa. Mungkin terdapat banyak sebab mengapa perisian tengah tidak berkuat kuasa Seterusnya, kami akan menganalisis dan meringkaskan beberapa situasi dan penyelesaian biasa.

  1. Perisian tengah tidak didaftarkan

Dalam Laravel, kita perlu mendaftarkan perisian tengah tersuai untuk menggunakannya seperti biasa. Jika kami tidak melengkapkan pendaftaran middleware dalam kod, middleware tidak akan berkuat kuasa. Dalam fail app/Http/Kernel.php Laravel, anda perlu mendaftarkan middleware tersuai ke dalam tatasusunan middleware yang sepadan.

Berikut ialah contoh kod ringkas:

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $middleware = [
        // ...
        \App\Http\Middleware\MyMiddleware::class,
    ];

    // ...
}
Salin selepas log masuk
  1. Perisian tengah dikendalikan oleh lapisan perisian tengah global

Dalam aplikasi Laravel, permintaan HTTP Ia akan melalui satu siri pemprosesan middleware, termasuk lapisan middleware global, lapisan middleware penghalaan dan lapisan middleware pengawal. Jika middleware yang kami takrifkan dipintas dan diproses oleh lapisan middleware global, maka ia tidak boleh diakses dengan penghalaan middleware dan middleware pengawal, menyebabkan middleware tidak berkuat kuasa.

Untuk menyelesaikan masalah ini, anda perlu menjelaskan skop perisian tengah global dan bila dan tempat perisian tengah tersuai perlu dipanggil. Untuk sesetengah perisian tengah khas, kita boleh mengelakkan gangguan perisian tengah global dengan memanggil penghalaan atau pengawal sasarannya.

  1. Turutan perisian tengah tidak betul

Dalam saluran paip pemprosesan permintaan Laravel (Pipeline), susunan perisian tengah boleh menentukan susunan perisian tengah. Jika kami mengkonfigurasi middleware dalam susunan yang salah, ia juga mungkin menyebabkan middleware tidak berkuat kuasa.

Dalam aplikasi Laravel, middleware akan dipanggil mengikut susunan yang didaftarkan dalam app/Http/Kernel.php. Jika perisian tengah tertentu perlu dilaksanakan sebelum perisian tengah lain dilaksanakan, maka ia perlu diletakkan pada permulaan tatasusunan.

Berikut ialah kod sampel:

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // ...
    ];

    // ...
}
Salin selepas log masuk

Dalam kod sampel di atas, perisian tengah StartSession perlu dilaksanakan sebelum perisian tengah lain, jadi ia diletakkan di hujung tatasusunan. Jika kita meletakkan StartSession middleware selepas middleware lain, maka ia tidak akan dilaksanakan, menyebabkan middleware tidak berkuat kuasa.

  1. Perisian tengah tidak dikawal oleh kebenaran penghalaan

Perisian tengah ialah alat keselamatan yang sangat penting dalam aplikasi Laravel. Ia boleh membantu kami mengesahkan identiti pengguna, kebenaran dan maklumat lain. . Walau bagaimanapun, dalam beberapa kes, kami mungkin mendapati bahawa sesetengah perisian tengah dipintas kawalan kebenaran penghalaan, mengakibatkan risiko keselamatan.

Menyelesaikan masalah ini memerlukan pemahaman yang mendalam tentang perisian tengah Laravel dan penggunaan yang munasabah untuk memastikan kesan sebenar mereka memenuhi jangkaan kami.

Ringkasan

Perisian tengah ialah komponen yang sangat penting dalam aplikasi Laravel Ia boleh mempraproses permintaan untuk mencapai beberapa tujuan tertentu. Tetapi bagi sesetengah orang baru, kadangkala perisian tengah mungkin tidak berkuat kuasa. Apabila menggunakan middleware, kita perlu memberi perhatian kepada pendaftaran middleware, pemprosesan lapisan middleware global, susunan middleware dan kawalan kebenaran penghalaan untuk mengelakkan beberapa isu keselamatan yang tidak dapat diramalkan.

Sebab perisian tengah Laravel mungkin tidak berfungsi tidak terhad kepada butiran ini dan pemahaman mendalam memerlukan pembangun meneroka dan menyelidik dalam pembangunan sebenar.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika perisian tengah laravel tidak berkuat kuasa?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!