==== Sanctumは2つの機能を持ってるから分かりにくい。 #### APIトークン認証 OAuthのようなトークンで認証するシステムを作るためのもの。トークンで認証してAPIを呼び出す側は外部のサーバーサイドでもクロスオリジンなフロントでも良い。 基本的には外部からの呼び出しで使う。セッションが使えないのでトークンで認証。 #### SPA認証 ファーストパーティ内のフロントから通常のLaravelと同じくセッションで認証する。ファーストパーティというのは「LaravelによるAPIもフロントもexample.com」もしくは「APIはapi.example.com、フロントはexample.com」のように同じドメインなこと。 内部からの呼び出しで使う。セッションが使えるのでトークンは使わない。 「フロントからAPIを呼び出す時はトークンで認証するのが当然」と思い込んでる人はSPA認証を理解しにくい。同一オリジンのセッション認証が有効な中でフロントからAPIを呼び出してた人は理解しやすい。 Laravelデフォルトでは`routes/api.php`はセッション無効なので有効にするにはコメントアウトされてる`EnsureFrontendRequestsAreStateful`を使用する。 https://github.com/laravel/laravel/blob/04a8e8553e6bf0ed54f5136949d7152df025dd91/app/Http/Kernel.php#L42