LaravelでAPIを書く際の検証方法

PHPz
リリース: 2023-05-20 19:30:53
オリジナル
905 人が閲覧しました

Web API の普及に伴い、API のセキュリティの重要性がますます高まっています。 Laravel では、組み込みの検証ルールとミドルウェアを使用して API リクエストを検証し、保護できます。

  1. Laravel の組み込み検証ルールを使用する

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 をスローするため、この例外を例外ハンドラーで処理する必要があります。

  1. Laravel の組み込みミドルウェアを使用する

Laravel は、API のセキュリティを強化するためのミドルウェアも多数提供しています。一般的に使用されるミドルウェアの一部を次に示します:

  • auth: ユーザー認証に使用され、ログインしているユーザーのみがインターフェイスにアクセスできるようにします;
  • throttle: リクエストの頻度を制限するために使用されます。攻撃や悪用を避けるための API インターフェイス;
  • cors: クロスドメイン リソース共有に使用され、クロスドメイン リクエストを許可します;
  • csrf: クロスサイト リクエスト フォージェリ攻撃を防ぐために使用されます。

以下に示すように、これらのミドルウェアをルート定義で直接使用できます。

// 定义需要认证的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');
});
ログイン後にコピー
  1. カスタム ミドルウェア

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート