任务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";});

 

posted @ 2020-05-14 15:12  pensive2019  阅读(234)  评论(0)    收藏  举报