LaravelでAccess-Control-Expose-Headersを設定する場合はfruitcake/laravel-corsが便利!
Laravelで外部APIを公開する際にAccess-Control-Expose-Headersを設定するときに使用したfruitcake/laravel-corsが非常に便利だったので紹介致します。
インストール
composerを使用して、fruitcake/laravel-corsをインストールします。
$ composer require fruitcake/laravel-cors
ミドルウェアの設定
app/Http/Kernel.php
に下記のコードを追記します。
// app/Http/Kernel.php
protected $middleware = [
\Fruitcake\Cors\HandleCors::class,
// ...
];
コンフィグファイルの作成
インストール後、コンフィグファイルを作成します。
$ php artisan vendor:publish --tag="cors"
コンフィグファイルはconfig/cors.php
に作成されます。
オプション
config/cors.php
では、Access-Control-Expose-Headersを表示するための設定を行う事ができます。
オプション | 説明 | デフォルト |
paths | Access-Control-Expose-Headersを設定するパス 例: ['api/*'] | array() |
allowed_origins | 許可するリクエストオリジンの設定 例: *.mydomain.com | array('*') |
allowed_origins_patterns | 許可するリクエストオリジンをpreg_match を使用して設定します | array() |
allowed_methods | 許可するリクエストメソッド | array('*') |
allowed_headers | Access-Control-Allow-Headersの表示 | array('*') |
exposed_headers | Access-Control-Expose-Headersの表示 | false |
max_age | Access-Control-Max-Ageの値 | 0 |
supports_credentials | Access-Control-Allow-Credentialsの表示 | false |