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

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トークン認証の基本を学ぶのにとても向いています。

まとめ

まとめ
まとめ

今回学んだ内容を整理すると、LaravelのAPIトークン認証を実装することで、Webアプリケーションやスマホアプリ、外部サービスとの安全な通信を実現できるという点が重要である。特にLaravel Sanctumを活用することで、複雑な設定を行わなくてもAPI認証を導入でき、認証と認可の仕組みをシンプルに構築できることが理解できる。

APIトークン認証は、ユーザーのメールアドレスやパスワードを毎回送信するのではなく、発行されたトークンを利用して本人確認を行う仕組みである。これにより、セキュリティを高めながら安全なAPIアクセスが可能になる。Laravelの公式機能であるSanctumは、軽量で扱いやすく、初心者から実務開発まで幅広く利用できる点が大きな特徴である。

APIトークン認証の基本構造

APIトークン認証では、ユーザーがログイン後にトークンを発行し、そのトークンをリクエストヘッダーに含めてAPIへアクセスする。サーバー側では、そのトークンが有効かどうかを確認し、正しければ処理を実行する。この流れを理解することが、API認証の基礎である。


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

上記のコードは、Laravel Sanctumを利用してAPIトークンを発行する基本例である。このトークンが合鍵の役割を果たし、安全なアクセス制御を可能にする。

認証ミドルウェアによるアクセス制御

Laravelでは、ルートにミドルウェアを設定することで、認証済みユーザーのみアクセスできる仕組みを構築できる。authサンクタムを利用することで、APIトークンの検証が自動的に行われる。


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

この設定により、正しいAPIトークンを持つユーザーのみがデータへアクセスできるようになる。これは安全なWebアプリケーション開発において非常に重要なポイントである。

APIリクエスト時のトークン利用

APIを呼び出す際には、リクエストヘッダーにトークンを含める。一般的にはAuthorizationヘッダーを使用し、Bearer方式で送信する。これにより、サーバーは送信されたトークンを検証し、認証処理を行う。


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

この仕組みを理解することで、フロントエンドとバックエンドが分離された構成でも、安全な通信を実現できる。

APIトークン認証を導入するメリット

APIトークン認証を導入することで、パスワードの直接送信を避けられ、セキュリティリスクを低減できる。また、トークンごとにアクセス権を管理できるため、特定のアプリケーションのみアクセスを許可することも可能である。さらに、トークンを無効化すれば即座にアクセス制限を行えるため、運用面でも柔軟性が高い。

Laravel Sanctumは公式パッケージであり、Laravelの認証と認可の仕組みと自然に連携する。これにより、開発効率を高めながら安全性も確保できる点が大きな利点である。

学習のポイント整理

  • APIトークン認証の仕組みを理解すること
  • Laravel Sanctumの役割を把握すること
  • ミドルウェアによるアクセス制御を設定すること
  • Authorizationヘッダーの使い方を理解すること
  • トークン管理によるセキュリティ向上を意識すること

これらのポイントを押さえることで、実務レベルのAPI認証を安全に構築できるようになる。LaravelのAPI開発では、認証と認可の設計が非常に重要であり、Sanctumはその第一歩として最適な選択肢である。

先生と生徒の振り返り会話

生徒

「APIトークン認証の仕組みが少し分かってきました。トークンが合鍵の役割をするのですね。」

先生

「その通りです。Laravel Sanctumを使えば、簡単に安全なAPI認証を実装できます。」

生徒

「ミドルウェアで認証を制御するのも大事だと分かりました。」

先生

「はい。API開発では、認証と認可の設計がセキュリティの基盤になります。今回の内容をしっかり復習しておきましょう。」

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.2
Java&Spring記事人気No2
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.3
Java&Spring記事人気No3
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.4
Java&Spring記事人気No4
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.5
Java&Spring記事人気No5
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.6
Java&Spring記事人気No6
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.7
Java&Spring記事人気No7
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterでファイルアップロードとストレージ管理をマスター!初心者向け完全ガイド