美文网首页LaravelLaravel开发实践Laravel
使用laravel中间件来添加指定请求的白名单

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

作者: stois | 来源:发表于2016-07-11 11:06 被阅读1062次

    这件事的需求是这样:
    我们使用微信公众平台的开发模式搭建好了一个后台,这样就不得不把运营人员设置的关键词回复加进来。当然我们不希望每次运营人员想修改时,都让我们来直接改代码。于是我就为他们写了个关键词回复管理台。
    我首先想到的是用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');
        }
    

    于是搞定。

    相关文章

      网友评论

      本文标题:使用laravel中间件来添加指定请求的白名单

      本文链接:https://www.haomeiwen.com/subject/sdxjjttx.html