Rumah  >  Artikel  >  rangka kerja php  >  Penjaga laravel world-middleware

Penjaga laravel world-middleware

灭绝师太
灭绝师太asal
2021-12-06 17:27:221990semak imbas

Penjaga laravel world-middleware

Middleware boleh menapis permintaan Di sini anda boleh menggunakan middleware untuk mengesahkan sama ada pengguna telah log masuk. Jika pengguna log masuk, anda boleh meneruskan operasi asal tidak log masuk, anda akan diubah hala Pergi ke halaman log masuk dan biarkan pengguna log masuk terlebih dahulu.

1. Tentukan middleware

Cipta middleware melalui perintah php artsian make:middleware, laluan fail: appHttpMiddlewareCheckToken.php

php artisan make:middleware CheckToken
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;

class CheckToken
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
       //在这里做一个判断,如果token不是 &#39;my-secret-token&#39;,则重定向
       if ($request->input(&#39;token&#39;) !== &#39;my-secret-token&#39;) {
            return redirect(&#39;home&#39;);
        }
        return $next($request);
    }
}

2. Klasifikasi middleware

  • Pra-middleware

<?php
namespace App\Http\Middleware;
use Closure;
class BeforeMiddleware
{
    public function handle($request, Closure $next)
    {
         ...
        // 应用请求之前执行一些任务
        return $next($request);
    }
}
  • Post-middleware

<?php
namespace App\Http\Middleware;
use Closure;
class AfterMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);
        // 应用请求之后执行一些任务
        return $response;
    }
}

3. Penggunaan middleware

  • Penggunaan global middleware

//在app\Http\Kernel.php中的$middleware内添加
 protected $middleware = [
        // \App\Http\Middleware\TrustHosts::class,
        ....
        ....
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        //这是之前定义的
        \App\Http\Middleware\CheckToken::class,
    ];
  • Gunakan middleware kumpulan

//在app\Http\Kernel.php中的$middlewareGroups内添加
  protected $middlewareGroups = [
      &#39;web&#39; => [
           ....
        ],

        &#39;api&#39; => [
           ....
        ],
        &#39;diy&#39; =>[
          //可以在web组和api组中添加,也可以自己diy一个
        ]
    ];
//路由中使用,RouteServiceProvider 默认将 web 和 api 中间件组自动应用到 routes/web.php 和 routes/api.php
Route::get(&#39;/u&#39;, function () {

})->middleware(&#39;diy&#39;);
  • Gunakan perisian tengah secara individu

    protected $routeMiddleware = [
         ...,
         &#39;myself&#39;=> \App\Http\Middleware\CheckToken::class,
        ];
Route::get(&#39;/user&#39;, function () {
    //
})->middleware(&#39;myself&#39;);

Disyorkan tutorial video berkaitan: Laravel Tutorial Video

Atas ialah kandungan terperinci Penjaga laravel world-middleware. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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