LaravelでAccess-Control-Expose-Headersを設定する場合はfruitcake/laravel-corsが便利!

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を表示するための設定を行う事ができます。

オプション説明デフォルト
pathsAccess-Control-Expose-Headersを設定するパス 例: ['api/*']array()
allowed_origins許可するリクエストオリジンの設定 例: *.mydomain.comarray('*')
allowed_origins_patterns許可するリクエストオリジンをpreg_matchを使用して設定しますarray()
allowed_methods許可するリクエストメソッドarray('*')
allowed_headersAccess-Control-Allow-Headersの表示array('*')
exposed_headersAccess-Control-Expose-Headersの表示false
max_ageAccess-Control-Max-Ageの値0
supports_credentialsAccess-Control-Allow-Credentialsの表示false
オプション一覧

参考サイト