Laravelのヘッドレスな認証の仕組みとして(Laravel Sanctum / Laravel Fortify)があります。
違いをざっくりと認識しておきましょう。
https://readouble.com/laravel/8.x/ja/sanctum.html
Laravel Sanctum(サンクタム、聖所)は、SPA(シングルページアプリケーション)、モバイルアプリケーション、およびシンプルなトークンベースのAPIに軽い認証システムを提供します。
・APIトークン
1つ目にSanctumは、OAuthの複雑さなしに、ユーザーにAPIトークンを発行するために使用できるシンプルなパッケージです。この機能は、「パーソナルアクセストークン」を発行するGitHubやその他のアプリケーションに触発されています
・SPA認証
SanctumはLaravelの組み込みのクッキーベースのセッション認証サービスを使用します。通常、SanctumはLaravelの「web」認証ガードを利用してこれを実現します。
composer create-project laravel/laravel sanctum_app
cd sanctum_app
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan route:list
https://readouble.com/laravel/8.x/ja/fortify.html
Laravel Fortifyは、Laravelのフロントエンドにとらわれない認証バックエンドの実装です。Fortifyは、ログイン、ユーザー登録、パスワードのリセット、メールの検証など、Laravelの認証機能をすべて実装するために必要なルートとコントローラを登録します。
基本的にLaravel Fortifyは、Laravel Breezeのルートとコントローラを持っており、ユーザーインターフェイスを含まないパッケージとして提供しています。
composer create-project laravel/laravel fortify_app
cd fortify_app
composer require laravel/fortify
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"
php artisan route:list
基本となるログイン(Rate Limmiting機能付き)の仕組みにプラスして、
以下のFeatureがON/OFFできるようになっています。(config/fortify.php)
---------------------------
登録機能(registration)
パスワードリセット機能(resetPasswords)
メール認証機能(emailVerification)
プロフィール情報の更新機能(updateProfileInformation)
パスワードの更新機能(updatePasswords)
2段階認証機能(twoFactorAuthentication)
---------------------------