【Laravel】Laravel Sanctum-SPA認証➀
認証いろいろ
ひとくちに「認証」といっても、何種類かありそう。
今回はLaravelSanctumのお世話になるので、以下2種類の認証をみてみる。
〇SPA認証
・Cookieを利用する
・トークンを利用する
・Cookieは一切使用しない
(APIアプリケーションの開発では、Cookieとセッションが使えない)
SPA認証
今回はSPA(シングルページアプリケーション)を扱うので、SPA認証で進めていく!
■インストール
①Laravel Sanctumのインストール
ターミナル
composer require laravel/sanctum
②Sanctum設定ファイルと移行ファイルをリソース公開する
ターミナル
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
③データベースのマイグレーションを実行
ターミナル
php artisan migrate
④Sanctumのミドルウェアをアプリケーションのapp/Http/Kernel.phpファイル内のapiミドルウェアグループに追加
app/Http/Kernel.php
変更前
変更後(コメントアウトされていた部分を有効化)
=MEMO============================
・Githubでクローンして別のPCで触るときは以下のコマンドを入力
ターミナル
composer install
=================================
■設定
〇ファーストパーティドメインの設定
→デプロイ(運用環境に配置・展開して実用に供すること)するときにドメインをかく
〇CORSとクッキー
・アプリケーションのCORS設定が、値がTrueのAccess-Control-Allow-Credentialsヘッダを返しているか確認
config/cors.php
変更前
変更後(supports_credentialsオプションをtrueに設定)
・axiosインスタンスでwithCredentialsオプションを有効にする
resources/js/bootstrap.js
変更前
変更後(2行目のコードを追加)
・アプリケーションのセッションクッキードメイン設定で、ルートドメインのサブドメインを確実にサポート。config/session.php、.envあたりをいじりそう…
→デプロイするときに設定するので今回はさわらず
=MEMO============================
CORS(オリジン間リソース共有)
オリジン間リソース共有 (CORS) - HTTP | MDN
=================================