##はじめに
Laravelで特定の機能にIP制限をかけてみます。今回は、ウェブサーバ側の設定ではなく、ルートフィルターで実現してみました。
かいてみる
app/config/app.php
// 略
/*
|--------------------------------------------------------------------------
| 管理画面情報
|--------------------------------------------------------------------------
*/
'admin' => [
'allowipaddresses' => ['127.0.0.1', '100.100.100.100'],
],
// 略
filters.php
// 略
Route::filter('auth.allowipaddresses', function($request) {
$clientIp = Request::getClientIp();
$allowIpaddresses =Config::get('app.admin.allowipaddresses');
if(!in_array($clientIp, $allowIpaddresses)){
// 許可されていないIPアドレスからの接続はトップにリダイレクト
return Redirect::to('/');
}
});
// 略
routes.php
// 略
/*
|--------------------------------------------------------------------------
| 管理画面
|--------------------------------------------------------------------------
*/
Route::group(['before' => ['force.ssl', 'auth.allowipaddresses', 'auth.admin']], function() {
Route::controller('admin', 'AdminController');
});
// 略
では、また!