首页 Order Laravel 正文

Laravel 理解中间件

金鹏头像 金鹏 Laravel 2022-04-01 14:04:46 0 488
导读:一.路由中间件     1.什么是中间件?中间件就是当程序接收HTTP 请求时,拦截后进行过滤和处理; ...
.路由中间件

      1. 什么是中间件?中间件就是当程序接收 HTTP 请求时,拦截后进行过滤和处理;

      2.  如当用户登录时,可以通过中间件进行验证比对,错误后让其跳转到登录页面;

      3. 框架系统自带了一些中间件,比如之前 CSRF 令牌保护,就是中间件实现的

4. 如果创建一个自定义的中间件?可以通过一句命令创建一个 check 中间件; php artisan make:middleware Check

 

      5. 实现一个简单的登录身份验证的效果,首先创建一个 Login 控制器

class LoginController

{

public function index()

{

echo '管理员,您好!  ';

}

 

public function login()

{

echo '登录失败!  ';

}

}

 

Route ::get( '/admin ', 'LoginController@index ');

Route ::get( '/login ', 'LoginController@login ');

 

      6. 要求,当 Http 接受 id=1 的情况下,它就是管理员,跳转 index 否则 login

     7. 此时,我们打开一开始创建好的 Check 中间件文件,了解一下结构;

//固定方法 ,固定格式

public function handle($request, Closure $next)

{

//这里编写验证跳转方法

if ($request->get( 'id ') != 1) {

return redirect(url( '/login '));

}

//固定返回格式,让其继续往下执

return $next($request);

}


      8. 下面,我们要对中间件进行注册,才可以使用,这个中间件适合在路由上使用

9. 所以,我们打开 Http/Kernel.php 文件,在路由配置中间件的区域进行注册 

protected $routeMiddleware = [

'check '=>\App\Http\Middleware\Check ::class,

]

 

     10. 然后,我们在登录的路由上执行中间件即可完成登录验证;

Route ::get( '/admin ', 'LoginController@index ')->middleware( 'check ');

 

      11. 这种中间件,属于前置中间件,也就是先拦截 Http 请求,再执行主体代码

     12. 另一种,就是后置中间件,也就是先执行主体代码,再拦截处理;

//固定方法 ,固定格式

public function handle($request, Closure $next)

{

//先执行主体代码

$response = $next($request);

 

//再进行拦截 Http 请求处理

echo '我是后置中间件';

//固定格式返回

return $response;

                   }


本文地址:https://www.jinpeng.work/?id=183
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键