<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一,創建過濾IP的中間件 1,創建: ~~~ liuhongdi@lhdpc:/data/php/admapi$ php think make:middleware CheckIp Middleware:app\middleware\CheckIp created successfully. ~~~ 2,代碼: middleware\\CheckIp.php [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ~~~ <?php declare (strict_types = 1); namespace app\middleware; use app\result\Result; class CheckIp { //地址列表,生產環境中通常會存放在redis中 private $ipList = ['192.168.219.1','127.0.0.2']; /** * 處理請求 * * @param \think\Request $request * @param \Closure $next * @return Response */ public function handle($request, \Closure $next) { //echo "CheckIp:<br/>"; $ip = $request->ip(); if(in_array($ip,$this->ipList)){ return Result::Error(1,"IP地址錯誤"); } return $next($request); } } ~~~ [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") 說明:劉宏締的架構森林是一個專注架構的博客,地址:[https://www.cnblogs.com/architectforest](https://www.cnblogs.com/architectforest) ? ? ? ? ?對應的源碼可以訪問這里獲取:?[https://github.com/liuhongdi/ ](https://github.com/liuhongdi/)? ? ? ? ?或:?[https://gitee.com/liuhongdi](https://gitee.com/liuhongdi) 說明:作者:劉宏締 郵箱: 371125307@qq.com ## 二,為路由指定中間件 1,route/app.php [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ~~~ <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- use think\facade\Route; //Route::get('article/onemedia','article/oneMedia'); Route::group('article', function () { Route::get('onemedia', 'article/oneMedia'); Route::get('qr', 'article/qr')->middleware([\app\middleware\CheckIp::class]); //Route::miss('public/miss'); }); Route::miss('article/miss'); ~~~ [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") 2,注意不要使CheckIp.php作為全局middleware 查看 app/middelware.php [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ~~~ <?php // 全局中間件定義文件 return [ app\middleware\CheckJwt::class, app\middleware\AdminLog::class, ]; ~~~ [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ## 三,測試效果 1,指定middleware時: 訪問: ~~~ http://192.168.219.6:8000/article/qr ~~~ 返回: ![](https://img.kancloud.cn/67/ce/67ce377065c2b02b807dcf894336654f_866x278.png) 2,未指定middleware時: 訪問: ~~~ http://192.168.219.6:8000/article/onemedia?id=1 ~~~ 返回: ![](https://img.kancloud.cn/b2/f8/b2f8934aa5ee1501ce47f975fd75f07d_1184x594.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看