任务19:创建并注册用户登录校验中间件
1,后台页面的权限验证
2,用到中间件 ,命令行下创建
php artisan make:middleware ChekLogin
3,编辑 刚创建 的中间件
app\http\middleware\CheckLogin.php
<?php namespace App\Http\Middleware; use Closure; class CheckLogin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if(!auth()->check()){//如果没有权限 session()->flush();//清空所有session return redirect()->route('admin.login.index')->withErrors(['errors'=>'请先登录']); } return $next($request); } }
4,注册路由中间件 App\Http\Requests\Kernel.php
63行代码下新增
'checklogin'=>\App\Http\Middleware\CheckLogin::class
如下图所示

5,回到路由 \routes\web.php 编辑为
1 <?php 2 //展示后台登录页面admin/login 3 Route::get("admin/login","Admin\LoginController@index") -> name("admin.login.index"); 4 //登录处理 5 Route::post("admin/login","Admin\LoginController@login") -> name("admin.login.login"); 6 7 Route::group(['prefix'=>'admin','namespace'=> 'Admin','middleware' =>['checklogin']],function(){//'middleware' =>['checklogin']是权限验证,若没登录会自动跳转到登录页 8 9 10 //后台首页 11 Route::get("index","IndexController@index") -> name("admin.index.index"); 12 }); 13 14 Route::get("/",function(){return "Hello Laravel 6.0.18";});

浙公网安备 33010602011771号