Laravel は、Web アプリケーションの開発と保守を簡素化するための多くの強力な機能とツールを提供する人気のある PHP Web 開発フレームワークです。 Laravel Sanctum は、API エンドポイントを不正アクセスから簡単に保護する API 認証および認可機能を提供する Laravel フレームワークのプラグインです。
この記事では、Laravel Sanctum を使用して API の認証と認可を実装する方法を学びます。
1.Laravel Sanctum とは何ですか?
Laravel Sanctum は、シンプルだが強力な API 認証および認可機能を提供する軽量の認証パッケージです。これは Laravel ミドルウェアと HTTP 認証に基づいており、認証トークンを API リクエストに安全に添付できます。
Laravel Sanctum は、Cookie ベースの認証とトークンベースの認証の 2 つの認証方法をサポートしています。 Cookie ベースの認証では、Laravel ミドルウェアを使用して、有効な認証 Cookie がリクエスト内に存在するかどうかを確認します。 Header クラスのトークンを検証し、それが有効かどうかを確認する別の方法。
2. Laravel Sanctum のインストール
始める前に、まず Laravel Sanctum をインストールする必要があります。 Laravel Sanctum は、composer パッケージ マネージャーを使用して簡単にインストールできます:
composer require laravel/sanctum
もちろん、composer.json ファイルに次の要件を追加することで手動でインストールすることもできます:
{ "require": { "laravel/sanctum": "^2.9" } }
完了したら、次のコマンドを実行して、Laravel Sanctum 設定ファイルとデータベース移行ファイルを公開します:
php artisan vendor:publish --tag=sanctum-config php artisan vendor:publish --tag=sanctum-migrations php artisan migrate
3. Laravel Sanctum を設定します
app/Http/kernel.php ファイルを変更し、Sanctum ミドルウェアを追加します。
// app/Http/Kernel.php protected $middleware = [ // ... LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, ]; protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, 'throttle:api', IlluminateRoutingMiddlewareSubstituteBindings::class, ], ];
これにより、Sanctum の Cookie ベースの認証がすべてのリクエストで使用できるようになります。
config/auth.php ファイルを開き、デフォルトとガードを見つけて、sanctum を使用するように設定します。
// config/auth.php 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'sanctum', 'provider' => 'users', 'hash' => false, ], ],
これにより、トークンベースの認証に Sanctum を使用できるようになります。
新しいバージョンの Laravel を使用している場合は、プロバイダーを追加する必要はありません。古いバージョンを使用している場合は、config/app.php ファイルを開いて、プロバイダー配列に次の行を追加してください:
LaravelSanctumSanctumServiceProvider::class,
IV. 認可トークンの作成
これで、設定が完了しました。 Laravel Sanctum、次に Sanctum を使用して認証トークンを作成する方法を学びます。
public function createToken(Request $request) { $user = Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]); if($user) { $token = $user->createToken('API Token')->plainTextToken; return response()->json([ 'token' => $token, ]); } else { return response()->json([ 'message' => 'Invalid credentials', ], 401); } }
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
5. API 認証と認可の実装
認可トークンを作成した後、Sanctum を使用して API エンドポイントを保護できます。不正アクセス。 Laravel ルーティング ミドルウェアを使用して認証トークンをチェックし、不正アクセスを拒否できます。
// routes/api.php Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
このルートは Sanctum 認証ミドルウェアを使用して保護されます。
php artisan serve
これで、/api/user ルートにアクセスして、ログインしているユーザーの詳細を表示できるようになります。現在、Authorization ヘッダーがないとアクセスできず、401 Unauthorized HTTP ステータス コードが返されます。
6. 終了
Laravel Sanctum は、Laravel Web アプリケーションや Web API に認証と認可を簡単に実装できる、強力で使いやすい認証および認可ソリューションです。 API エンドポイントを不正アクセスから簡単に保護し、どのユーザーがどの API エンドポイントにアクセスできるかを簡単に制御できます。この記事では、Laravel Sanctum をインストールして構成する方法を学び、それを使用して認可トークンを作成し、API 認証と認可を実装する方法を説明しました。
以上がLaravel 開発: Laravel Sanctum を使用して API 認証と認可を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。