LaravelをAPIサーバにしたときのCORS対応

プログラミング
この記事は約3分で読めます。
記事内に広告が含まれます。

laravel6系をAPIサーバにする場合のCORS対応です。
Nuxt.jsでLaravelのApiサーバにPOSTやGETする場合にCorsPolicyエラーがなかなか消えなくて苦労したのでこちらの残しておきます。

最初にLaravel6のインストールとAPI部分のプログラムは終わらせておいてください。今回はCORS対策の部分のみです。

スポンサーリンク

まずはCORSパッケージのインストール

% composer require fruitcake/laravel-cors

Veriosn0.xからVersionUpする場合はcors.php内のオプションの名前が変更になっているそうです。キャメルケースからスネークケースに変更してください。

CORSを許可する

% vi app/Http/Kernel.php

// ...
protected $middleware = [
    // ...
    \Fruitcake\Cors\HandleCors::class,
];
// ...

コンフィグレーションファイルの作成

% php artisan vendor:publish --tag="cors"

コンフィグファイルの編集

上記のコマンドを実行した時点でコンフィグファイルが作成されます。

URL api.に対して設定します。

% vi config/cors.php
    // ...
    'paths' => ['api/*'],
    // ...

allowed_origins、allowed_headers、およびallowed_methodsに任意の値を設定することができます。

あとは通常通り
routes/app.phpにルーティングを記述してください。


例:
Route::prefix('auth')->group(function () {
    Route::post('register', 'JWTAuthController@register');
    Route::post('login',    'JWTAuthController@login');
    Route::post('refresh',  'JWTAuthController@refresh');
    Route::get('logout',    'JWTAuthController@logout');
    Route::get('user',      'JWTAuthController@me');
    Route::post('update',    'JWTAuthController@update');
});

コメント

タイトルとURLをコピーしました