目次
Laravel Sanctum を理解する
Laravel Sanctum の実装
ステップ 1: インストール
ステップ 2: 構成の公開
ステップ 3: データベースの移行
ステップ 4: ミドルウェア構成
実際のトークンベースの認証
ステップ 1: ルート保護
ステップ 2: トークンの生成
ステップ 3: トークンの取り消し
シングルページ アプリケーション (SPA) の統合
ステップ 1: CSRF 保護
ステップ 2: フロントエンド構成
セキュリティのベストプラクティス
結論
ホームページ バックエンド開発 PHPチュートリアル Laravel Sanctum を使用して API を構築する日

Laravel Sanctum を使用して API を構築する日

Jan 09, 2025 pm 02:05 PM

Day Building APIs with Laravel Sanctum

Laravel Sanctum: 最新のアプリケーションにおける API 認証への合理化されたアプローチ。 API はプラットフォーム間の通信に不可欠であり、Sanctum は API を保護し、堅牢でスケーラブルなアプリケーションを促進するための軽量ソリューションを提供します。このガイドでは、SPA やトークンベースの認証を含む、Sanctum のセットアップ、機能、ユースケースについて説明します。

Laravel Sanctum を理解する

Laravel Sanctum は API 認証を簡素化し、2 つの主要な機能を提供します。

  • トークンベースの認証: 外部サービスまたはモバイル アプリケーションによってアクセスされる API に最適です。
  • セッションベースの認証: フロントエンドとバックエンドが同じドメインを共有するシングルページ アプリケーション (SPA) に最適です。

より複雑なソリューションとは異なり、Sanctum の軽量な性質と簡単な構成により、OAuth 要件のないアプリケーションに最適です。

Laravel Sanctum の実装

ステップ 1: インストール

Composer を使用して Sanctum をインストールします:

composer require laravel/sanctum
ログイン後にコピー
ログイン後にコピー

ステップ 2: 構成の公開

Sanctum 設定ファイルを公開します:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
ログイン後にコピー

これにより config/sanctum.php が生成され、Sanctum の設定をカスタマイズできるようになります。

ステップ 3: データベースの移行

Sanctum は personal_access_tokens テーブルを使用します。このテーブルを作成します:

php artisan migrate
ログイン後にコピー

ステップ 4: ミドルウェア構成

Sanctum のミドルウェアを api 内の app/Http/Kernel.php ミドルウェア グループに統合します:

'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
ログイン後にコピー

実際のトークンベースの認証

ステップ 1: ルート保護

routes/api.php ミドルウェアを使用して auth:sanctum でルートを保護します:

use Illuminate\Support\Facades\Route;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});
ログイン後にコピー

ステップ 2: トークンの生成

createToken メソッドを使用して個人用アクセス トークンを生成します:

use App\Models\User;
use Illuminate\Http\Request;

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

    if (! $user || ! Hash::check($request->password, $user->password)) {
        return response()->json(['message' => 'Invalid credentials'], 401);
    }

    return $user->createToken('auth_token')->plainTextToken;
});
ログイン後にコピー

ステップ 3: トークンの取り消し

ログアウト用のユーザーのトークンを取り消します:

Route::post('/logout', function (Request $request) {
    $request->user()->tokens()->delete();
    return response()->json(['message' => 'Logged out successfully']);
});
ログイン後にコピー

シングルページ アプリケーション (SPA) の統合

Sanctum は SPA にセッションベースの認証を活用します。

ステップ 1: CSRF 保護

EnsureFrontendRequestsAreStateful ミドルウェアが api ミドルウェア グループ内で正しく構成されていることを確認してください。

ステップ 2: フロントエンド構成

SPA から認証された AJAX リクエストを含む CSRF トークンを送信します:

composer require laravel/sanctum
ログイン後にコピー
ログイン後にコピー

セキュリティのベストプラクティス

  • トークンのセキュリティ: トークンを安全に保存し (例: HTTP のみの Cookie に)、クライアント側での公開を防ぎます。
  • トークンの有効期限: 漏洩したトークンに関連するリスクを軽減するために、トークンの有効期限を実装します。
  • スコープ制限: トークンの権限を制御するための特定のスコープを定義します。

結論

Laravel Sanctum は、最新のアプリケーションの API を保護するためのユーザーフレンドリーで効率的な方法を提供します。 その軽量設計と柔軟な API により、開発者の認証が簡素化され、SPA とトークンベースの API アクセスの両方にとって貴重なツールになります。 Sanctum の機能を十分に理解するために、プロジェクトで Sanctum を試してみてください。

以上がLaravel Sanctum を使用して API を構築する日の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO) PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO) Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

See all articles