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
'providers' => [ // Other service providers... Laravel\Sanctum\SanctumServiceProvider::class, ],
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
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; });
Auth::user()->tokens()->delete();
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; }
$request->user()->can('update', $post);
今日のインターネットの世界では、API や Web サービスが広く応用されており、認証方法としてトークンが多くのアプリケーションでさらに広く使用されることになります。 Laravel フレームワークは、Web アプリケーションを不正アクセスからより適切に保護できる優れたトークン実装メカニズムを提供します。
以上がLaravelにおけるTokenの実装仕組みを紹介した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。