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');
});
コメント