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

LaravelでAPIリクエストに認証をかける方法を完全解説(Sanctum入門)

LaravelでAPIリクエストに認証をかける方法(Sanctum入門)
LaravelでAPIリクエストに認証をかける方法(Sanctum入門)

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

生徒

「LaravelでAPIを作ったんですが、誰でもアクセスできてしまいます。これって危なくないですか?」

先生

「そのままだと問題ですね。APIには本人だけが使えるようにする仕組み、つまり認証が必要です。」

生徒

「APIにもログインみたいなものがあるんですか?」

先生

「あります。LaravelではSanctumを使うと、API認証をとても簡単に実装できます。」

1. API認証とは何か

1. API認証とは何か
1. API認証とは何か

API認証とは、そのリクエストを送ってきた人が「正しい利用者かどうか」を確認する仕組みです。現実の例で言うと、会員制の建物に入るときに会員証を見せるようなものです。

認証がないAPIは、誰でも勝手に使えてしまいます。これでは大切なデータを守れません。そのため、LaravelのAPI開発では認証を必ず設定します。

2. Sanctumとは

2. Sanctumとは
2. Sanctumとは

Sanctumは、Laravel公式の認証機能の一つです。API用の認証をシンプルに実装できるのが特徴です。難しい設定をしなくても、トークンと呼ばれる鍵を使って安全に通信できます。

トークンとは「本人であることを証明する合言葉」のようなものです。一度ログインしてトークンを取得すると、その後のAPIリクエストではこのトークンを一緒に送ります。

3. Sanctumで使われるトークン認証の考え方

3. Sanctumで使われるトークン認証の考え方
3. Sanctumで使われるトークン認証の考え方

Sanctumのトークン認証は、とても分かりやすい仕組みです。最初にログインAPIを呼び出し、正しいメールアドレスとパスワードならトークンが発行されます。

その後は、APIにアクセスするときにトークンを添えて送るだけです。Laravel側では、そのトークンが正しいかを確認し、問題なければ処理を実行します。

4. Sanctumを使う準備

4. Sanctumを使う準備
4. Sanctumを使う準備

SanctumはLaravelに簡単に追加できます。インストールすると、API認証に必要な仕組みが自動で用意されます。初心者でも、特別な知識がなくても使える点が大きなメリットです。

この準備によって、「APIを守る鍵」がシステムに組み込まれます。

5. トークンを発行する処理のイメージ

5. トークンを発行する処理のイメージ
5. トークンを発行する処理のイメージ

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

この処理で、ユーザー専用のトークンが作られます。この文字列がAPI認証で使われる鍵になります。実際の開発では、このトークンをJSON形式で返します。

6. 認証が必要なAPIを守る方法

6. 認証が必要なAPIを守る方法
6. 認証が必要なAPIを守る方法

Sanctumでは、ミドルウェアという仕組みを使ってAPIを保護します。ミドルウェアとは、処理の前にチェックを入れる門番のような存在です。

認証用のミドルウェアを設定すると、トークンを持っていない人はAPIを使えなくなります。これにより、不正アクセスを防げます。

7. API認証があることで何が安心か

7. API認証があることで何が安心か
7. API認証があることで何が安心か

APIに認証をかけることで、データの安全性が大きく高まります。誰がどのAPIを使っているかも分かるため、トラブルの原因も追いやすくなります。

LaravelとSanctumを使えば、難しい理論を知らなくても、実用的なAPI認証を実装できます。API開発では欠かせない基本要素なので、しっかり理解しておきましょう。

まとめ

まとめ
まとめ

LaravelとSanctumによるAPI認証の総復習

本記事では、LaravelでAPIを安全に運用するために欠かせない認証の仕組みについて、Sanctumを中心に丁寧に解説してきました。APIはアプリケーション同士をつなぐ重要な役割を持っていますが、認証を行わない状態では誰でもアクセスできてしまい、情報漏洩や不正操作といった重大なリスクを招きます。

そのため、API開発では「認証」を最初に考えることが非常に重要です。特にLaravelでは、公式パッケージであるSanctumを利用することで、トークンベースのAPI認証をシンプルかつ安全に実装することができます。

Sanctumの特徴は、複雑な設定を必要とせず、ユーザーごとにトークンを発行し、そのトークンを用いて認証を行う点にあります。これにより、フロントエンドアプリケーションやモバイルアプリからのAPIアクセスも安全に制御できるようになります。

トークン認証の重要ポイント

トークン認証の流れは非常にシンプルです。まずログイン処理によってユーザーを認証し、その結果としてトークンを発行します。その後のAPIリクエストでは、このトークンをリクエストヘッダーに含めることで、サーバー側がユーザーを識別します。

Laravel Sanctumでは、この一連の流れを簡単に実装できるため、初心者でも実用的なAPI認証を短時間で構築することができます。また、ミドルウェアを利用することで、特定のAPIに対して認証を必須にする設定も簡単に行えます。

サンプルプログラムで理解を深める

ここでは、実際の開発でよく使用されるトークン発行処理と認証付きAPIの例を確認しておきましょう。これらのコードは、Laravel API認証の基本として頻繁に使用される重要な処理です。


public function login(Request $request)
{
    $user = User::where('email', $request->email)->first();

    if (!$user || !Hash::check($request->password, $user->password)) {
        return response()->json([
            'message' => 'ログイン情報が正しくありません'
        ], 401);
    }

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

    return response()->json([
        'token' => $token
    ]);
}

上記のコードでは、ユーザーのメールアドレスとパスワードを検証し、正しい場合にトークンを発行しています。このトークンは、その後のAPI通信において重要な役割を持ちます。


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

このようにミドルウェアを設定することで、トークンを持っていないリクエストは自動的に拒否されます。これにより、安全なAPI運用が実現されます。

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

APIに認証を導入することで、システム全体の信頼性が向上します。誰がどの操作を行ったのかを追跡できるようになり、トラブル発生時の原因特定も容易になります。また、外部サービスとの連携においても、セキュリティを確保したまま安全にデータのやり取りが可能になります。

LaravelとSanctumの組み合わせは、シンプルでありながら強力なAPI認証の仕組みを提供します。これからAPI開発を行う方にとっては、必ず習得しておきたい重要な技術の一つと言えるでしょう。

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

生徒

「API認証って難しそうだと思っていましたが、Sanctumを使うと意外とシンプルなんですね。」

先生

「そうですね。Laravelは開発者が迷わないように、必要な機能を分かりやすく提供してくれています。Sanctumもその一つです。」

生徒

「トークンを使うことで、安全にAPIを利用できる仕組みが理解できました。」

先生

「トークンは鍵のようなものです。これを適切に管理することで、不正アクセスを防ぐことができます。」

生徒

「ミドルウェアでAPIを守る仕組みも、とても便利だと感じました。」

先生

「その通りです。認証が必要な処理とそうでない処理を分けることで、柔軟な設計が可能になります。」

生徒

「これからはAPIを作るときに、必ず認証を意識するようにします。」

先生

「とても大切な視点です。安全なシステムを作るためには、認証とセキュリティの理解が欠かせません。」

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPで日本語の曜日を表示する方法を解説!配列を使った曜日変換の定番コード
New2
Symfony
Symfonyでバリデーションエラーを表示する方法!初心者でもわかるテンプレート活用術
New3
Laravel
Laravelのマイグレーションエラーの原因と解決方法を完全ガイド
New4
Laravel
Laravelのrefreshとfreshの違いを初心者でもわかる解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravel通知機能の決定版!特定のユーザーにのみ通知を送る認可制御を初心者向けに徹底解説
No.3
Java&Spring記事人気No3
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.4
Java&Spring記事人気No4
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.5
Java&Spring記事人気No5
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.6
Java&Spring記事人気No6
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.7
Java&Spring記事人気No7
Laravel
Laravelのエラー画面をカスタマイズする方法!errors/xxx.blade.phpの使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterコントローラでログを出力する方法完全ガイド!初心者でもわかるエラー記録とデバッグ