Laravel Passport を使用した PHP セキュリティ認証の実装
はじめに:
現代の Web 開発では、ユーザーの認証と認可は非常に重要なセキュリティ機能です。 Laravel Passport は、ユーザー認証および認可機能を簡単に実装できる OAuth2 ベースの認証ツールです。この記事では、Laravel Passport を使用して PHP で安全な認証を実装する方法について説明します。
手順:
Laravel Passport をインストールする
まず、Laravel フレームワークがインストールされていることを確認します。次に、ターミナルでプロジェクト ディレクトリに入り、次のコマンドを実行して Laravel Passport パッケージをインストールします:
composer require laravel/passport
インストールが成功したら、次のコマンドを実行して、パッケージに必要なファイルとデータベースの移行を公開します:
php artisan passport:install
パスポートの構成config/app.php
ファイルを開き、次のサービス プロバイダーを providers
配列に追加します。
LaravelPassportPassportServiceProvider::class,次に、
app/Http/Kernel.php ファイルの
$routeMiddleware 配列に次のミドルウェアを追加します。
'client' => LaravelPassportHttpMiddlewareCheckClientCredentials::class,最後に、
app /User.php
Passport の
HasApiTokens トレイトを /User.php
ファイルに追加します:
use LaravelPassportHasApiTokens;
を導入します。クラスの trait
配列内:
use HasApiTokens;
これで、Laravel Passport が正常に構成されました。
ユーザー認証インターフェイスの作成
まず、ユーザー認証リクエストを処理するコントローラーを作成する必要があります。次のコマンドを実行して新しいコントローラを生成できます:
php artisan make:controller AuthController
次に、登録およびログイン リクエストを処理する次のメソッドを AuthController
に追加します:
use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; class AuthController extends Controller { public function register(Request $request) { // 验证请求数据 $request->validate([ 'name' => 'required|unique:users', 'email' => 'required|email|unique:users', 'password' => 'required|min:6' ]); // 创建用户 $user = User::create([ 'name' => request('name'), 'email' => request('email'), 'password' => bcrypt(request('password')), ]); // 生成访问令牌 $token = $user->createToken('accessToken')->accessToken; // 返回响应 return response()->json(['token' => $token], 200); } public function login(Request $request) { // 验证请求数据 $credentials = request(['email', 'password']); // 检查用户凭据 if (!Auth::attempt($credentials)) { return response()->json(['message' => 'Unauthorized'], 401); } // 获取当前用户 $user = $request->user(); // 生成访问令牌 $token = $user->createToken('accessToken')->accessToken; // 返回响应 return response()->json(['user' => $user, 'token' => $token], 200); } }
ルートの作成routes/api.php
ファイルを開き、次のルートを追加します:
Route::post('register', 'AuthController@register'); Route::post('login', 'AuthController@login')->middleware('client');
パスポート ガードの使用
Open config/auth.php
ファイルを編集し、api
ガード ドライバーを passport
に変更します:
'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
認証されたユーザーを使用します
これで、auth:api
ミドルウェアを使用してユーザーを認証し、関連する API ルートを保護できるようになりました。たとえば、AuthController
に次のルートを追加できます:
public function profile() { $user = Auth::user(); return response()->json(['user' => $user], 200); }
次に、routes/api.php
に次のルートを追加します:
Route::get('profile', 'AuthController@profile')->middleware('auth:api');
このように、/api/profile
ルートにアクセスするとき、ユーザーは最初に有効な認証トークンを提供するように求められます。
概要:
この記事では、Laravel Passport を使用して PHP セキュリティ検証を実装する方法について詳しく説明します。 Laravel Passportをインストールして設定することで、ユーザー認証と認可機能を迅速に実装し、APIルートを保護できます。この記事が認証に Laravel Passport を使用する開発者にとって役立つことを願っています。
以上がLaravel Passportを使用したPHPセキュリティ検証の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。