カテゴリ: Laravel 更新日: 2026/01/24

LaravelのAPIトークン認証を完全入門!Sanctumで始める安全な認証

LaravelでAPIトークン認証を導入する方法(Sanctum入門)
LaravelでAPIトークン認証を導入する方法(Sanctum入門)

先生と生徒の会話形式で理解しよう

生徒

「Laravelでスマホアプリ用のAPIを作りたいんですが、ログインはどうやって守るんですか?」

先生

「その場合は、APIトークン認証を使うと安全ですよ」

生徒

「APIトークンって何ですか?パスワードとは違うんですか?」

先生

「合鍵のようなものです。Laravel Sanctumを使えば簡単に導入できます」

1. APIトークン認証とは?

1. APIトークン認証とは?
1. APIトークン認証とは?

APIトークン認証とは、利用者が持つ「トークン」という文字列を使って本人確認を行う仕組みです。トークンは、家の合鍵や社員証のようなもので、正しいものを持っている人だけが中に入れます。

通常のWebサイトではメールアドレスとパスワードでログインしますが、APIでは画面がなく、プログラム同士で通信します。そのため、APIではパスワードの代わりにトークンを使って認証するのが一般的です。

2. Laravel Sanctumとは?

2. Laravel Sanctumとは?
2. Laravel Sanctumとは?

Laravel Sanctumは、Laravel公式の認証ライブラリで、APIトークン認証をとても簡単に実装できます。難しい設定をしなくても、安全な認証機能が使えるのが特徴です。

Sanctumは「軽くて分かりやすい」設計なので、初心者がLaravelの認証と認可を学ぶ最初の一歩としてよく使われています。

3. Sanctumをインストールする

3. Sanctumをインストールする
3. Sanctumをインストールする

まずはSanctumをプロジェクトに追加します。コマンドはそのままコピーして使えます。


composer require laravel/sanctum

composerはLaravelで部品を管理する道具です。インストールすると、Sanctumの機能が使えるようになります。

4. 設定ファイルとテーブルを準備する

4. 設定ファイルとテーブルを準備する
4. 設定ファイルとテーブルを準備する

次に、Sanctum用の設定とデータベースの準備を行います。


php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

php artisan migrate

これでAPIトークンを保存するためのテーブルが作成されます。データベースは、情報を整理してしまっておく引き出しのようなものです。

5. UserモデルにSanctumを設定する

5. UserモデルにSanctumを設定する
5. UserモデルにSanctumを設定する

ユーザーがトークンを持てるように、Userモデルに設定を追加します。


use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

これでUserはAPIトークンを発行できるようになります。Traitとは、便利な機能をまとめて取り込む仕組みです。

6. APIトークンを発行する

6. APIトークンを発行する
6. APIトークンを発行する

ログイン後にAPIトークンを発行する例を見てみましょう。


$token = $user->createToken('api-token')->plainTextToken;

このトークンが合鍵になります。利用者は、この文字列を使ってAPIにアクセスします。

7. APIリクエストでトークンを使う

7. APIリクエストでトークンを使う
7. APIリクエストでトークンを使う

APIを呼び出すときは、トークンをリクエストに含めます。


Authorization: Bearer 発行されたトークン

Bearerとは「このトークンを持っている人」という意味です。API側はこの情報を見て、正しい利用者かどうかを判断します。

8. ルーティングで認証を設定する

8. ルーティングで認証を設定する
8. ルーティングで認証を設定する

APIルートに認証をかけることで、ログイン済みの人だけが使えるようになります。


Route::middleware('auth:sanctum')->get('/user', function () {
    return auth()->user();
});

middlewareは、処理の前にチェックを行う門番のような存在です。

9. APIトークン認証のメリット

9. APIトークン認証のメリット
9. APIトークン認証のメリット

APIトークン認証を使うことで、パスワードを毎回送らずに済み、安全性が高まります。また、トークンを無効にすることで、簡単にアクセスを止めることもできます。

SanctumはLaravel公式なので情報も多く、Laravelの認証と認可を学ぶ上で安心して使える仕組みです。

10. 初心者がつまずきやすいポイント

10. 初心者がつまずきやすいポイント
10. 初心者がつまずきやすいポイント

最初は「トークンをどこで使うのか」「どこで確認されるのか」が分かりにくいかもしれません。合鍵を渡して、門番が確認する、という流れを思い出すと理解しやすくなります。

Laravel Sanctumはシンプルな設計なので、APIトークン認証の基本を学ぶのにとても向いています。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New2
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New3
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New4
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.4
Java&Spring記事人気No4
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.5
Java&Spring記事人気No5
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelでファクトリを使ってテストデータを作成する方法を完全解説!初心者向けLaravelテスト入門