Laravel将自定义中间件添加到Route :: auth();

时间:2016-03-18 11:39:34

标签: php laravel authentication routing middleware

所以我有一个用artisan make:auth生成的登录区域,这创建了视图&控制器正确,并已将Route::auth();添加到我的routes.php ..一切都很好,但现在我想限制登录到IP列表。

我创建了一个 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找到了解决方法,但这并没有解决代码中的问题。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

<field name="display_name" attrs="{'invisible':[('has_task','=',True)]}/> 文件中添加以下行:

bootstrap/autoload.php