Web API の普及に伴い、API のセキュリティの重要性がますます高まっています。 Laravel では、組み込みの検証ルールとミドルウェアを使用して API リクエストを検証し、保護できます。
Laravel には、「required」 (必須)、「email」 (電子メール形式) などの一連の検証ルールが用意されています。 。これらのルールを API インターフェイスに適用して、インターフェイス パラメーターの正確性を保証できます。
たとえば、登録された API インターフェイスのパラメーターを確認したい場合は、次のコードを使用できます:
public function register(Request $request) { $validatedData = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8', ]); // 对请求参数进行处理 // ... // 注册用户 // ... }
上記のコードでは、$request->validate を使用します。 () メソッドでリクエストパラメータを検証します。検証が失敗した場合、Laravel は自動的に ValidationException をスローするため、この例外を例外ハンドラーで処理する必要があります。
Laravel は、API のセキュリティを強化するためのミドルウェアも多数提供しています。一般的に使用されるミドルウェアの一部を次に示します:
以下に示すように、これらのミドルウェアをルート定義で直接使用できます。
// 定义需要认证的API接口 Route::middleware(['auth'])->group(function () { Route::post('/api/foo', 'FooController@create'); Route::put('/api/foo/{id}', 'FooController@update'); }); // 定义允许跨域访问的API接口 Route::middleware(['cors'])->group(function () { Route::get('/api/bar', 'BarController@index'); }); // 定义限制请求频率的API接口 Route::middleware(['throttle'])->group(function () { Route::get('/api/baz', 'BazController@index'); });
Laravel の使用に加えて、組み込みミドルウェア。ミドルウェアをカスタマイズして、より複雑な検証ロジックを実装することもできます。
たとえば、API リクエストにトークン パラメーターが含まれていて、そのトークンが有効であることを確認したい場合は、この関数を実装するカスタム ミドルウェアを作成できます。
php artisan make:middleware ValidateToken
public function handle($request, Closure $next) { $token = $request->input('token'); if (! $token || ! Token::isValid($token)) { return response()->json([ 'status' => 'error', 'message' => 'Invalid token provided', ], 401); } return $next($request); }
上記ではコードでは、まずリクエスト内の「トークン」パラメータを取得し、トークンが有効かどうかを確認します。無効な場合は、401 ステータス コードとエラー メッセージが返されます。それ以外の場合は、リクエストの処理を続行します。
最後に、ルート定義でこのカスタム ミドルウェアを使用できます:
Route::middleware(['validate_token'])->group(function () { Route::post('/api/qux', 'QuxController@create'); });
概要
Laravel では、組み込みの検証ルール、ミドルウェア、およびカスタマイズ ミドルウェアを使用できます。 API リクエストを検証し、API のセキュリティを強化します。同時に、特定のビジネス ニーズに基づいて、より複雑な検証ロジックを実装して、API インターフェイスを悪用や攻撃から保護することもできます。
以上がLaravelでAPIを書く際の検証方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。