ホームページ > 記事 > PHPフレームワーク > LaravelにおけるTokenの実装仕組みを紹介した記事
Laravel は、PHP プログラミング言語を使用して開発された Web アプリケーション フレームワークであり、その優れたパフォーマンスは、多数の強力な拡張パッケージが内部に統合されているためです。これには、トークンの基礎となる実装が含まれます。トークンは Web アプリケーションで一般的に使用される認証方法であり、通常は API や Web サービスを不正なアクセスから保護するために使用されます。この記事では、LaravelにおけるTokenの実装の仕組みを紹介します。
1. トークンの概念
トークンは、その名前が示すように、ある種の ID 情報または承認情報を表すことができるマークであるトークンを指します。通常、トークンはサーバーによって生成され、クライアントに発行されます。クライアントがトークンを受信すると、トークンはローカルに保存され、認証または認可の ID として後続のリクエストのリクエスト ヘッダーまたはリクエスト パラメーターに追加されます。サーバーは、トークンが有効かどうかを確認することで、リクエストに認証情報または認可情報が含まれているかどうかを判断できます。
トークンを使用すると、Web アプリケーションを不正アクセスからより効果的に保護できます。特に API や Web サービスでは、トークンが不可欠です。
2. Laravel トークンの実装
優れた Web アプリケーション フレームワークとして、Laravel は組み込みの Auth 関数でトークンのサポートを提供します。 Laravel では、トークンは Laravel Sanctum 拡張パッケージを使用して実装されます。
2.1 Laravel Sanctum
Laravel Sanctum は、API キーまたはトークンに基づいて Laravel アプリケーションに API 認証を提供できる軽量の認証パッケージであり、アプリケーションを SPA などのステートレス環境で実行できるようにします。アプリケーション、シングルページ アプリケーション、モバイル アプリケーション。 Laravel Sanctum は以下の機能を提供します:
composer require laravel/sanctumインストールが完了したら、次の設定を config/app.php ファイルに追加する必要があります。
'providers' => [ // Other service providers... Laravel\Sanctum\SanctumServiceProvider::class, ],3.2 設定を公開するインストールが完了したら、次のコマンドを使用して Sanctum 設定ファイルを公開します。
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"3.3 ミドルウェアの設定Sanctum を使用する場合は、対応するルートにミドルウェアを追加する必要があります。 LaravelにはAPI認証ミドルウェアが組み込まれており、直接呼び出すことができます。 3.4 トークンの作成ログイン後、次のコードを使用して現在のユーザーのトークンを作成できます:
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; // 创建Token Route::post('/api/token/create', function (Request $request) { $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { throw ValidationException::withMessages([ 'email' => ['The provided credentials are incorrect.'], ]); } return $user->createToken($request->header('User-Agent'))->plainTextToken; });上記のコードでは、次のことがわかります。 Token を作成するときに、マシンの User-Agent を追加パラメータとして使用します。ここでの User-Agent は、ブラウザまたはアプリケーション関連の情報を記録する HTTP ヘッダーです。この情報はトークンの一部として使用されるため、トークンが盗まれたり悪用されたりすると、簡単に発見して取り消すことができます。 3.5 トークンの取り消し作成されたトークンが盗まれたり無効になったりした場合は、次のコードを使用して取り消すことができます:
Auth::user()->tokens()->delete();3.6 検証拡張機能Sanctumまた、優れた検証拡張機能により、アクセス制御を簡単に実行できます。コードは次のとおりです:
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; }上記のコードを使用した後、アクセス制御に User モデルで can インターフェイスを使用できます。コードは次のとおりです。 :
$request->user()->can('update', $post);上記のコードでは、 can は、現在のユーザーのロール、権限、およびポリシーに基づいて、ユーザーが更新操作を実行する権利を持っているかどうかを判断します。ユーザーは独自のアクセス制御ロジックを正しく実装する必要があることに注意してください。 4. 概要この記事では、Laravel での Token の基本的な実装メカニズム、特に Sanctum 拡張機能パッケージの使用方法を紹介しました。 Sanctum は、アプリケーションに迅速に統合してアプリケーションのセキュリティを向上できる、便利で使いやすい API を提供します。トークンの使用方法、作成、失効、管理、アクセス制御について詳しく説明します。
今日のインターネットの世界では、API や Web サービスが広く応用されており、認証方法としてトークンが多くのアプリケーションでさらに広く使用されることになります。 Laravel フレームワークは、Web アプリケーションを不正アクセスからより適切に保護できる優れたトークン実装メカニズムを提供します。
以上がLaravelにおけるTokenの実装仕組みを紹介した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。