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
來找到解決方法,但這不能解決代碼中的問題。
任何想法?謝謝。