使用laravel中间件来添加指定请求的白名单

这件事的需求是这样:
我们使用微信公众平台的开发模式搭建好了一个后台,这样就不得不把运营人员设置的关键词回复加进来。当然我们不希望每次运营人员想修改时,都让我们来直接改代码。于是我就为他们写了个关键词回复管理台。
我首先想到的是用auth写个登陆系统,但因为我之前将users这张表赋予了其他用途,就需要建个新表,将auth的基础配置改改(当然最后我没改成功)。于是我想不如直接将这个后台的访问设个白名单吧!
因此我访问了laravel的官方文档。大致步骤分为:

  1. 使用artisan make一个中间件。
php artisan make:middleware AgeMiddleware
  1. 在kernel.php注册这个中间件;
  2. 在routes.php为你的请求添加中间件,官网的示例用法是:
Route::get('admin/profile', ['middleware' => 'AgeMiddleware', function () {
  //
}]);
  1. 编辑中间件代码。我的白名单代码很简单:
       if ( in_array($request->getClientIp(), ['xx.xxx.xxx.xxx'])){
         return $next($request); }

现在我遇到了一个坑是这样:
在routes.php里,我希望对如下请求添加中间件:

Route::resource('keyword', 'KeywordController');

官网示例代码里,没有写明resource下改如何添加中间件。
经过一番google,我在KeywordController里添加:

 public function __construct()
    {
        $this->middleware('checkIP');
    }

于是搞定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 先说几句废话,调和气氛。事情的起由来自客户需求频繁变更,伟大的师傅决定横刀立马的改革使用新的框架(created ...
    wsdadan阅读 3,091评论 0 12
  • 在项目根目录下使用:php artisan make:middleware 中间件名称Middleware命令创建...
    北冥摸鱼阅读 739评论 0 1
  • 0.1配置1.模板继承2.控制器3.git4.支付宝支付的流程5.路由6.中间件7.请求8.laravel 学习笔...
    云龙789阅读 841评论 0 5
  • 前言:laravel的中间件很方便,使用也很灵活,本文档只是介绍简单使用 生成中间件(默认在 /app/Http/...
    呦丶耍脾气阅读 3,573评论 0 0
  • 过去做事情急,什么东西拿起来就用,不喜欢进行系统性的学习,造成在使用过程中的错误和低效,现在感觉自己耐心多了,用之...
    马文Marvin阅读 2,022评论 0 10