Rumah > rangka kerja php > Laravel > teks badan

[Nota organisasi] Pengenalan dan penciptaan perisian tengah HTTP laravel

演明
Lepaskan: 2021-09-15 11:42:30
asal
1355 orang telah melayarinya

Berikut adalah nota yang saya susun semasa menonton video di laman web php Cina untuk rujukan anda. Berikut adalah beberapa pengetahuan asas Jika anda tidak biasa dengan pengetahuan asas, anda boleh lihat. Artikel terakhir yang saya kongsikan ialah tentang komposer memasang laravel Jika anda ingin melihat lebih banyak artikel, saya harap saya dapat membantu anda.

Perisian tengah sebenarnya menambah lapisan penapisan atau perlindungan pada penghalaan Awalan dan ruang nama dihantar sebagai parameter tatasusunan kumpulan, dan perisian tengah juga dihantar sebagai parameter tatasusunan kumpulan

1. Penulisan middleware

Sebelum menambah middleware

Route::group(['prefix' => 'admin','namespace'=>'Admin'], function () {
Rount::get('login','IndexController@login');
Rount::get('index','IndexController@index');
});
Salin selepas log masuk
Selepas menambah web middleware

Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>['web']], function () {
Rount::get('login','IndexController@login');
Rount::get('index','IndexController@index');
});
Salin selepas log masuk
web Middleware boleh menggunakan fungsi session, dayakan CSRF perlindungan

Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});
Salin selepas log masuk
dan sediakan laluan untuk mengeluarkan sesi

Route::get('/test',function(){
echo session('key');
return 'test';
});
Salin selepas log masuk
tetapi kerana ia bukan dalam perisian tengah, sesi tidak boleh dikeluarkan Nilai

Mari kita sediakan middleware yang meletakkan laluan ke dalam kumpulan

Route::group(['middleware'=>['web']], function () {
Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});
Route::get('/test',function(){
echo session('key');
return 'test';
});
});
Salin selepas log masuk
Perisian tengah web lalai sistem, middleware berada dalam Kernel.php

Apabila menggunakan middleware web, session

akan digunakan 2. Tentukan secara manual perisian tengah log masuk awan pengurusan latar belakang dalam fail Kernel.php sendiri

Sebelum definisi:

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    ];
Salin selepas log masuk
Selepas definisi:

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
 'admin.login' => \App\Http\Middleware\AdminLogin::class,
    ];
Salin selepas log masuk
Tukar ke direktori projek dalam tetingkap cmd dan gunakan arahan untuk mencipta middleware

php artisan make:middleware AdminLogin
Salin selepas log masuk
Kemudian lihat AdminLogin dalam folder Middleware .php fail

<?php
namespace App\Http\Middleware;
use Closure
class AdminLogin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
       echo 12344445;
        return $next($request);     
               
    }
}
Salin selepas log masuk
dan kemudian panggil middleware yang baru dibuat

Route::group(['middleware'=>['web','admin.login'],], function () {
Route::get(&#39;/&#39;,function(){
session([&#39;key&#39;=>123]);
return view(&#39;welcome&#39;);
});
Route::get(&#39;/test&#39;,function(){
echo session(&#39;key&#39;);
return &#39;test&#39;;
});
});
Salin selepas log masuk

3. Pengesahan pentadbir super latar belakang

Route::group([&#39;prefix&#39; => &#39;admin&#39;,&#39;namespace&#39;=>&#39;Admin&#39;,&#39;middleware&#39;=>&#39;web&#39;], function () {
Rount::get(&#39;login&#39;,&#39;IndexController@login&#39;);//登录不需要后台管理员的超级认证
});
Route::group([&#39;prefix&#39; => &#39;admin&#39;,&#39;namespace&#39;=>&#39;Admin&#39;,&#39;middleware&#39;=>&#39;admin.login&#39;], function () {
Rount::get(&#39;index&#39;,&#39;IndexController@index&#39;);//超级管理员需要认证后才能进入欢迎页面和编辑页面
Rount::resource(&#39;article&#39;,&#39;ArticleController&#39;);
});
Salin selepas log masuk
Mana-mana pengguna boleh log masuk , tetapi jika log masuk berjaya, mereka akan memasuki halaman selamat datang Jika log masuk tidak berjaya, mereka akan pergi ke halaman log masuk Kerana maklumat log masuk disimpan dalam sesi, kami menggunakan maklumat sesi untuk menentukan sama ada untuk log masuk dalam

Log masuk simulasi adalah untuk menulis maklumat log masuk ke dalam sesi, dan kemudian cari pengawal IndexController di bawah pakej Admin

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
public function index(){
return view(&#39;welcome&#39;);
}
    function login(){
session([&#39;admin&#39;=>1]); //登录信息用admin存储
     return &#39;<h1>登录<h1>&#39;
   }
}
Salin selepas log masuk
Mari keluarkan sesi dalam middleware untuk menguji

dan kemudian lihat dalam folder Middleware AdminLogin.php fail

<?php
namespace App\Http\Middleware;
use Closure
class AdminLogin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
       echo session(&#39;admin&#39;);
        return $next($request);     
               
    }
}
Salin selepas log masuk

Pengesahan:

Mari kita log masuk dahulu, dan kemudian lawati halaman selamat datang. Jika 1 adalah output, ini bermakna tetapan kami berjaya (apabila log masuk, 1 Simpan dalam sesi, dan kemudian masukkan halaman alu-aluan. Halaman alu-aluan akan memanggil AdminLogin.php perisian tengah,),

Kami terus menetapkan adminlogin dari folder middleware. perkara penting yang perlu dilakukan Jika anda tidak faham apa-apa, anda boleh meninggalkan mesej. Terima kasih atas sokongan anda. Saya harap saya dapat membantu anda Jika anda ingin melihat maklumat lanjut, ikuti saya dan teruskan berkongsi dalam artikel seterusnya.

Atas ialah kandungan terperinci [Nota organisasi] Pengenalan dan penciptaan perisian tengah HTTP laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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