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

Penjaga laravel world-middleware

灭绝师太
Lepaskan: 2021-12-06 17:27:22
asal
2054 orang telah melayarinya

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
Salin selepas log masuk
<?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);
    }
}
Salin selepas log masuk

2. Klasifikasi middleware

  • Pra-middleware

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

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

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,
    ];
Salin selepas log masuk
  • 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;);
Salin selepas log masuk
  • 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;);
Salin selepas log masuk

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!

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