1.創(chuàng)建中間件
在app/Http/Middleware 下創(chuàng)建同一個php文件文件內(nèi)容
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Response;
use Closure;
class CheckToken
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}
可通過Artisan 快速創(chuàng)建
php artisan make:middleware CheckToken
2.注冊中間件
支持全局中間件 ----------在 protected $middleware 下配置
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\CheckToken::class, 新注冊的全局中間件
];
分配中間件到指定路由 在protected $routeMiddleware 下配置
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'CheckToken' => \App\Http\Middleware\CheckToken::class, //新注冊中間件
];
分配中間件
-------------------單個路由分配單個中間件-----------------
Route::get('/', function () {
//
})->middleware('token');
-----------------單個路由分配多個中間件-------------
Route::get('/', function () {
//
})->middleware('token', 'auth');
---------------給一組路由分配多個中間件----------------------
Route::middleware(['first', 'second'])->group(function () {
Route::get('/', function () {
// Uses first & second Middleware
});
Route::get('user/profile', function () {
// Uses first & second Middleware
});
});