2016-03-18 83 views
0

所以我有一個與artisan make:auth生成的登錄區域,這已經創建了&控制器正確的意見,並已將Route::auth();添加到我的routes.php ..一切都很好,但現在我想限制登錄到一個IP列表。Laravel將自定義中間件添加到Route :: auth();

我已經創建了一個IPRestrictions中間件和Kernel.php有參考

中間件代碼:

namespace App\Http\Middleware; 

use Closure; 

class IPRestrictions { 

    public function handle($request, Closure $next) { 

     // Allowed IPs 
     $allowed = ['xxx.xxx.xxx.xxx', 'xxx.xxx.xxx.xxx', 'xxx.xxx.xxx.xxx']; 

     // Get the IP address 
     $ip = $request->ip(); 

     // Check if the ip is valid or if allowed 
     if (!filter_var($ip, FILTER_VALIDATE_IP) || !in_array($ip, $allowed)) return abort(404); 

     return $next($request); 
    } 
} 

內核:

'restrict-ips' => \App\Http\Middleware\IPRestrictions::class 

我試圖將這種中間件到路線如下:

Route::group(['middleware' => 'restrict-ips'], function() { 
    Route::auth(); 
}); 

這工作我的本地虛擬機上,但只要其在活的服務器上,收到了錯誤:達到「100」

最大函數嵌套層次,中止!

我通過增加xdebug.max_nesting_level來找到解決方法,但這不能解決代碼中的問題。

任何想法?謝謝。

回答

0

添加以下線路在bootstrap/autoload.php文件:

ini_set('xdebug.max_nesting_level', 200); 
相關問題