Perisian tengah termasuk: 1. Authenticate; 2. CheckForMaintenanceMode; 4. RedirectIfAuthenticated;
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Laravel 6, komputer Dell G3.
perisian tengah Laravel sendiri
Laravel disertakan dengan beberapa perisian tengah, termasuk pengesahan, perlindungan CSRF, dsb. Perisian tengah mana yang didayakan secara khusus oleh Laravel boleh dilihat melalui fail appHttpKernel.php. Untuk middleware bermula dengan AppHttpMiddleware (terletak dalam direktori app/Http/Middleware), kami boleh menyesuaikan tingkah lakunya.
Sahkan middleware
Fail sumber: appHttpMiddlewareHttpMiddlewareAuthenticate.php
<?php namespace App\Http\Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware; class Authenticate extends Middleware { /** * Get the path the user should be redirected to when they are not authenticated. * * @param \Illuminate\Http\Request $request * @return string */ protected function redirectTo($request) { if (! $request->expectsJson()) { return route('login'); } } }
Fungsi:
Pengesahan pengguna. Kaedah redirectTo boleh diubah suai untuk mengembalikan laluan kepada pengguna yang tidak disahkan harus diubah hala.
CheckForMaintenanceMode middleware
Fail sumber: appHttpMiddlewareCheckForMaintenanceMode.php
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware; class CheckForMaintenanceMode extends Middleware { /** * The URIs that should be reachable while maintenance mode is enabled. * * @var array */ protected $except = [ // ]; }
Fungsi:
Kesan sama ada projek dalam penyelenggaraan mod . URL yang masih boleh diakses dalam mod penyelenggaraan boleh ditetapkan melalui harta tatasusunan $except.
Perisian tengah EncryptCookies
Fail sumber: appHttpMiddlewareEncryptCookies.php
<?php namespace App\Http\Middleware; use Illuminate\Cookie\Middleware\EncryptCookies as Middleware; class EncryptCookies extends Middleware { /** * The names of the cookies that should not be encrypted. * * @var array */ protected $except = [ // ]; }
Fungsi
Sulitkan dan sahkan kuki. Kuki yang tidak disulitkan boleh ditetapkan melalui atribut tatasusunan $except.
RedirectIfAuthenticated middleware
Fail sumber: appHttpMiddlewareRedirectIfAuthenticated.php
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; class RedirectIfAuthenticated { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $guard * @return mixed */ public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { return redirect('/home'); } return $next($request); } }
Fungsi:
Apabila halaman permintaan didaftarkan, Apabila log masuk atau terlupa kata laluan, semak sama ada pengguna sudah log masuk. Jika ya, ubah hala ke halaman utama Jika tidak, buka antara muka yang sepadan. Laluan untuk mengubah hala ke boleh disesuaikan dalam kaedah pemegang.
perisian tengah TrimStrings
Fail sumber: appHttpMiddlewareTrimStrings.php
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware; class TrimStrings extends Middleware { /** * The names of the attributes that should not be trimmed. * * @var array */ protected $except = [ 'password', 'password_confirmation', ]; }
Fungsi:
Kandungan parameter permintaan sebelum dan selepas Pembersihan ruang putih. Parameter yang tidak diproses boleh ditetapkan melalui sifat tatasusunan $except.
Perisian tengah TrustProxies
Fail sumber: appHttpMiddlewareTrustProxies.php
<?php namespace App\Http\Middleware; use Illuminate\Http\Request; use Fideloper\Proxy\TrustProxies as Middleware; class TrustProxies extends Middleware { /** * The trusted proxies for this application. * * @var array|string */ protected $proxies; /** * The headers that should be used to detect proxies. * * @var int */ protected $headers = Request::HEADER_X_FORWARDED_ALL; }
Fungsi:
Konfigurasikan proksi yang dipercayai. Senarai proksi yang dipercayai boleh ditetapkan melalui sifat $proxies dan sifat $headers menetapkan medan pengepala HTTP yang digunakan untuk mengesan proksi.
VerifyCsrfToken middleware
Fail sumber: appHttpMiddlewareVerifyCsrfToken.php
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * Indicates whether the XSRF-TOKEN cookie should be set on the response. * * @var bool */ protected $addHttpCookie = true; /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ // ]; }
Fungsi:
Sahkan token dalam permintaan Padanan token yang disimpan dalam sesi. URL yang tidak melakukan pengesahan CSRF boleh ditetapkan melalui atribut tatasusunan $except.
Cadangan berkaitan: Lima tutorial video Laravel terbaharu
Atas ialah kandungan terperinci Apakah middlewares laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!