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 は以下の機能を提供します:
- #設定なしで使用を開始できます;
- セッション、トークン、API キーなどの複数の認証方法をサポート;
- Built -Cookie、トークン、認証などの複数の認証実装;
- 便利な認証とトークン生成を提供;
- より優れたカスタム認証プロセス。
- トークンの作成: ユーザーがログインすると、Sanctum はユーザーのランダムなトークンを生成し、そのトークンをバックグラウンド データベースに保存します。 # トークンの送信: リクエスト パラメーターまたはヘッダーの承認フィールドとしてトークンをサーバーに送信します;
- トークンの検証: サーバー側で、Sanctum は受信したトークンが有効かどうかを確認し、承認または拒否を決定します。 ;
- トークン管理: Sanctum は、トークンを作成、取り消し、検索、検証するための一連の API を提供します。
- 3. Laravel トークンの使用
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 サイトの他の関連記事を参照してください。

LARAVEL10INTRODUCESSERALKEYFEATURESTENHANCEWEBDEVELOPMENT.1)LAZYCOLLECTIONSSALLECTIONSSALLOWECTIONSALLOWESPICIENTPROCESSINGOFLAREDATASETSWITHOUTLECORDSINTOMEMORY.2)The'Make:Model and-Migration'ArtisAncommandSimplifiesingModElsandmigrations.3)Integration

はい、laravelmigrationsworthusing.itsimplifiesdatabaseschemamamanagement、entancescollaboration、およびprovidesversioncontrol.useitfortructured、efficientdevelopment。

softdeletesinlaravelimpactperformancebycomplicating complicating andincreasingstorageneeds.tomitigatetheseissues:1)indexthedeleted_atcolumntospeedupqueries、2)useegerloadingtoreducequerycount、and3)remulationcleanupsoftedededtomentaindatabaseefiefie

laravelMigrationSareBenefisialForversionControl、Collaboration、およびProMotingGoodDevelopmentPractices.1)TheyThealOwTrackingBackDatabaseChanges.2)MigrationSensureTeamMembers'schemasStaysized.3)

Laravelのソフト削除機能は、実際の削除ではなくレコードをマークすることによりデータを保護します。 1)softdeletestraitを追加し、フィールドをモデルに削除します。 2)delete()メソッドを使用して、delete()メソッドを使用してdeleteをマークし、復元します。 3)withtrashed()またはonlytrashed()を使用して、クエリ時にソフト削除レコードを含めます。 4)パフォーマンスを最適化するために一定期間を超えたソフト削除レコードを定期的に削除します。

laravelMigrationSareversionControlfordatabaseChemas、avainwedReproducible andReversiblechanges.tousethem:1)createamigration with'phpartisanmake:migration '、2)defineschemachangesinthe'up()' methodandrealin'dod()

laravelMigrationsmayfailtorollbackduetodategrityissues、foreignkeyconstraints、orirReversiblecoctions.1)datagegrityissuescurifigriverigrignigrationaddsdatatatcan'tcan'tcan、likecolumnwithadeadefaultvalue.2)foreientkeycostriantsscanpretrolllolllolllolllolllolllolllollblacksifrelatio


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
