crazydevil / ipfilter
适用于 Laravel 应用程序的 IP 访问过滤器
此包的规范存储库似乎已删除,因此已冻结此包。
v1.1.4
2019-07-19 21:29 UTC
Requires
- php: ^7.1.3
- illuminate/http: >=5.7.0 <5.9.0
- illuminate/support: >=5.7.0 <5.9.0
Requires (Dev)
- laravel/framework: >=5.7.0 <5.9.0
README
Laravel IP filter
此包提供了一个简单的方法,用于向您的路由添加 IP 过滤器,以限制 Laravel 5 应用程序的用户访问。
安装
通过 Composer
$ composer require crazydevil/ipfilter
Laravel 5.5+ 自动通过自动发现注册服务提供者。在之前的 Laravel 版本中,请将以下行添加到您的 app.php
'providers' => [ ... CrazyDevil\Ipfilter\IpfilterServiceProvider::class, ... ]
使用方法
导出过滤配置文件。
php artisan vendor:publish --provider="CrazyDevil\Ipfilter\IpfilterServiceProvider"
将中间件添加到您的 Kernel.php
protected $routeMiddleware = [ ... 'ipfilter' => CrazyDevil\Ipfilter\Ipfilter::class, ... ]
默认情况下,过滤器仅在 生产环境 中激活。但您可以通过配置文件添加其他环境。
'environments' => ['production', 'staging'],
过滤 IP 地址
要允许 IP 访问您的路由,您必须将它们添加到配置文件中。
'allowed_ips' => [ '127.0.0.1', '10.0.0.1', ],
添加 IP 地址后,您必须将中间件包含到您的路由中。
定义中间件
对于所有 Web 路由,请将中间件添加到 RouteServiceProvider.php 中的 function mapWebRoutes
protected function mapWebRoutes() { Route::middleware('web') ->middleware('ipfilter') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }
对于所有 API 路由,请将中间件添加到 RouteServiceProvider.php 中的 function mapApiRoutes
protected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->middleware('ipfilter') ->namespace($this->namespace) ->group(base_path('routes/api.php')); }
对于特定路由,请将中间件添加到 web.php 或 api.php
Route::get('/', function () { return view('welcome'); })->middleware('ipfilter');
您还可以接受或拒绝不同路由的访问。例如,所有路由都应从指定的 IP 地址访问,但除 /admin 路由外。为此,您必须在配置文件中定义如下示例:config/ipfilter.php
'allowed_ips' => [ '127.0.0.1', '10.0.0.1', ], 'routes' => [ 'admin' => [] ]
web.php 或 api.php
Route::get('/', function () { return view('welcome'); })->middleware('ipfilter'); Route::get('/admin', function () { return view('admin'); })->middleware('ipfilter:admin');
在此示例中,IP 地址 127.0.0.1 和 10.0.0.1 可以访问应用程序中的所有路由,但不能访问 /admin 路由
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件