laravel 路由中间件 路由中间件
2018年9月1日1.创建中间件
1 |
php artisan make:middleware CheckIfEmailVerified #执行命令创建一个验证用户邮箱是否激活的中间件 |
2.编辑中间件
打开app\Http\Middleware\CheckIfEmailVerified.php
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . public function handle($request, Closure $next) { if (!$request->user()->email_verified) { #判断用户这个字段是否为假(false),如果为假 if ($request->expectsJson()) { #判断用户是否为ajax请求 return response()->json(['msg' => '请先验证邮箱'], 400); #如果是ajax返回json数据 } return redirect(route('email_verify_notice')); #页面跳转,提示用户激活邮箱页面 } return $next($request); #接着操作 } |
3.注册中间件
打开app\Http\Kernel.php
编辑文件添加路由中间件
1 2 3 4 5 6 7 8 9 |
protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'email_verified' => \App\Http\Middleware\CheckIfEmailVerified::class, #注册邮箱是否激活中间件 ]; |
4使用中间件
1 2 3 4 5 6 7 |
Route::group(['middleware' => 'auth'], function() { #路由组添加登陆验证 Route::group(['middleware' => 'email_verified'], function() { #路由组添加邮箱验证判断邮箱是否有效 Route::get('/test', function() { return 'Your email is verified'; }); }); }); |
5.测试中间件
打开浏览器访问这个路由即可