Laravel による API 認証と認可: 機密データと操作の保護
API 認証と認可に Laravel を使用する: 機密データと操作の保護
概要:
API (アプリケーション プログラミング インターフェイス) は、最新の Web アプリケーションの重要な部分です。開発コンポーネント。さまざまなシステム間でのデータ対話や関数呼び出しが可能になります。 API アプリケーションでは、データのセキュリティが非常に重要です。 Laravel は、強力な API 認証および認可機能を提供する人気の PHP フレームワークであり、機密データと操作を保護し、不正アクセスを防止するのに役立ちます。
1. Laravel のインストールと設定
まず、composer を使用して Laravel をインストールする必要があります。コマンドラインで次のコマンドを実行します:
composer global require laravel/installer
インストールが完了したら、次のコマンドを使用して新しい Laravel プロジェクトを作成できます:
laravel new api-auth
プロジェクトが存在するディレクトリを入力します:
cd api-auth
次に、ユーザー データを暗号化するためのキーを生成する必要があります。次のコマンドを実行します。
php artisan key:generate
2. API 認証および認可関連ファイルを作成します。
- ユーザー モデルを作成します。 Laravel では、データベース内のデータを管理するために Eloquent モデルをよく使用します。次のコマンドを実行して、ユーザー モデルを生成します。
php artisan make:model User -m
このコマンドは、ユーザー モデルと対応するデータベース移行ファイルを生成します。
- ユーザー認証コントローラーの作成: 次のコマンドを実行してユーザー認証コントローラーを生成します:
php artisan make:controller AuthController
- API ルートの作成:
routes/ を編集します。 API 関連のルートを定義する api.php
ファイル:
Route::post('login', 'AuthController@login'); Route::post('register', 'AuthController@register'); Route::middleware('auth:api')->group(function () { Route::get('user', 'AuthController@user'); Route::post('logout', 'AuthController@logout'); });
上記のルートは、ユーザーのログイン、登録、ユーザー情報の取得、ログアウトなどのインターフェイスを定義します。
- ユーザー認証コントローラーの作成:
app/Http/Controllers/AuthController.php
ファイルを開き、次のコードを書き込みます。上記のコードでは、ユーザー登録、ログイン、ユーザー情報の取得、ログアウトの操作を定義しています。
Guard と Provider の構成:
config/auth.php- ファイルを開き、
- guards
を見つけます。および
providers構成項目。次の例に従って構成します。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>namespace AppHttpControllers; use IlluminateHttpRequest; use AppUser; use IlluminateSupportFacadesAuth; class AuthController extends Controller { public function register(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:55', 'email' => 'email|required|unique:users', 'password' => 'required|confirmed' ]); $validatedData['password'] = bcrypt($request->password); $user = User::create($validatedData); $accessToken = $user->createToken('authToken')->accessToken; return response(['user' => $user, 'access_token' => $accessToken]); } public function login(Request $request) { $loginData = $request->validate([ 'email' => 'email|required', 'password' => 'required' ]); if (!Auth::attempt($loginData)) { return response(['message' => 'Invalid credentials']); } $accessToken = Auth::user()->createToken('authToken')->accessToken; return response(['user' => Auth::user(), 'access_token' => $accessToken]); } public function user() { return response(['user' => Auth::user()]); } public function logout(Request $request) { $request->user()->token()->revoke(); return response(['message' => 'Successfully logged out']); } }</pre><div class="contentsignin">ログイン後にコピー</div></div>
データベース移行の実行: 次のコマンドを実行して、生成されたデータベース移行を実行します。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users' ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ] ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppUser::class ] ],
- 実行後、暗号化された公開キーと秘密キーのペアが発行用に生成され、アクセスの検証トークン。
php artisan migrate
パーソナル アクセス クライアントの作成: 次のコマンドを実行してパーソナル アクセス クライアントを作成します:
- 5. API の認証と認可をテストします
php artisan passport:install
新しいユーザーを登録します:
http://localhost:8000/api/register- への POST リクエストを使用して、次のデータを送信します:
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>php artisan passport:client --personal</pre><div class="contentsignin">ログイン後にコピー</div></div>
ログインユーザー: POST リクエストを使用して
- 次のデータを送信します:
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>{ "name": "John Doe", "email": "johndoe@example.com", "password": "password", "password_confirmation": "password" }</pre><div class="contentsignin">ログイン後にコピー</div></div>ユーザー情報の取得: GET リクエストを使用しますhttp://localhost:8000/api/user<ol start="3"> にリクエストを送信し、ヘッダーに <li>Authorization: Bearer {access_token}<code> を追加します。ここで、
{access_token}はログイン時に返されるアクセストークン。
ユーザーをログアウトします: POST リクエストを使用してリクエストを
http://localhost:8000/api/logout に送信し、- Authorization: Bearer {access_token}## も追加します。ヘッダー内の # 。
上記で、Laravel の API 認証および認可機能を通じて機密データと操作を保護することに成功しました。ユーザーモデル、コントローラー、ルーティング、Passportが提供する機能を利用することで、APIの認証・認可制御を簡単に実現できます。
以上がLaravel による API 認証と認可: 機密データと操作の保護の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Laravel 9 と CodeIgniter 4 の最新バージョンでは、更新された機能と改善が提供されます。 Laravel9はMVCアーキテクチャを採用しており、データベース移行、認証、テンプレートエンジンなどの機能を提供します。 CodeIgniter4 は、HMVC アーキテクチャを使用してルーティング、ORM、およびキャッシュを提供します。パフォーマンスの面では、Laravel9 のサービスプロバイダーベースの設計パターンと CodeIgniter4 の軽量フレームワークにより、優れたパフォーマンスが得られます。実際のアプリケーションでは、Laravel9 は柔軟性と強力な機能を必要とする複雑なプロジェクトに適しており、CodeIgniter4 は迅速な開発や小規模なアプリケーションに適しています。

Laravel と CodeIgniter のデータ処理機能を比較します。 ORM: Laravel はクラスとオブジェクトのリレーショナル マッピングを提供する EloquentORM を使用しますが、CodeIgniter は ActiveRecord を使用してデータベース モデルを PHP クラスのサブクラスとして表します。クエリビルダー: Laravel には柔軟なチェーンクエリ API がありますが、CodeIgniter のクエリビルダーはよりシンプルで配列ベースです。データ検証: Laravel はカスタム検証ルールをサポートする Validator クラスを提供しますが、CodeIgniter には組み込みの検証関数が少なく、カスタム ルールの手動コーディングが必要です。実践例:ユーザー登録例はLarを示しています

Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

初心者にとって、CodeIgniter は学習曲線が緩やかで機能は少ないですが、基本的なニーズはカバーしています。 Laravel は幅広い機能セットを提供しますが、学習曲線はわずかに急になります。パフォーマンスの点では、Laravel と CodeIgniter はどちらも良好なパフォーマンスを示します。 Laravel にはより広範なドキュメントとアクティブなコミュニティ サポートがあり、CodeIgniter はよりシンプルで軽量で、強力なセキュリティ機能を備えています。ブログアプリケーションを構築する実際のケースでは、Laravel の EloquentORM を使用するとデータ操作が簡素化されますが、CodeIgniter ではより手動の構成が必要になります。

大規模プロジェクト用のフレームワークを選択する場合、Laravel と CodeIgniter にはそれぞれ独自の利点があります。 Laravel はエンタープライズレベルのアプリケーション向けに設計されており、モジュール設計、依存関係の注入、強力な機能セットを提供します。 CodeIgniter は、速度と使いやすさを重視した、小規模から中規模のプロジェクトに適した軽量フレームワークです。複雑な要件と多数のユーザーを伴う大規模なプロジェクトには、Laravel のパワーとスケーラビリティがより適しています。単純なプロジェクトやリソースが限られている状況では、CodeIgniter の軽量で迅速な開発機能がより理想的です。

小規模なプロジェクトの場合、Laravel は強力な機能とセキュリティを必要とする大規模なプロジェクトに適しています。 CodeIgniter は、軽量さと使いやすさを必要とする非常に小規模なプロジェクトに適しています。

Laravel の Blade と CodeIgniter の Twig テンプレート エンジンを比較し、プロジェクトのニーズと個人的な好みに基づいて選択してください。Blade は MVC 構文に基づいており、適切なコード編成とテンプレートの継承を促進します。 Twig は、柔軟な構文、強力なフィルター、拡張サポート、セキュリティ サンドボックスを提供するサードパーティ ライブラリです。

Laravel - Artisan Console - Laravel フレームワークは、コマンドラインを介した対話のための 3 つの主要なツール、つまり Artisan、Ticker、REPL を提供します。この章ではArtisanについて詳しく説明します。
