Maison  >  Article  >  cadre php  >  Comment vérifier lors de l'écriture de l'API dans Laravel

Comment vérifier lors de l'écriture de l'API dans Laravel

PHPz
PHPzoriginal
2023-05-20 19:30:53900parcourir

Avec la popularité de l'API Web, la sécurité de l'API devient de plus en plus importante. Dans Laravel, nous pouvons utiliser des règles de validation et un middleware intégrés pour valider et protéger les requêtes API.

  1. Utilisez les règles de validation intégrées de Laravel

Laravel fournit une série de règles de validation, telles que "obligatoire" (obligatoire), " email " (format email) et ainsi de suite. Nous pouvons appliquer ces règles à notre interface API pour garantir l'exactitude des paramètres de l'interface.

Par exemple, si nous voulons vérifier les paramètres d'une interface API enregistrée, nous pouvons utiliser le code suivant :

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',
    ]);

    // 对请求参数进行处理
    // ...

    // 注册用户
    // ...
}

Dans le code ci-dessus, nous utilisons $request- >validate () pour vérifier les paramètres de la demande. Si la validation échoue, Laravel lancera automatiquement une ValidationException, et nous devrons ensuite gérer cette exception dans le gestionnaire d'exceptions.

  1. Utilisez le middleware intégré de Laravel

Laravel fournit également de nombreux middleware pour améliorer la sécurité des API. Voici quelques middlewares couramment utilisés :

  • auth : utilisé pour l'authentification des utilisateurs, permettant uniquement aux utilisateurs connectés d'accéder à l'interface
  • throttle : utilisé pour limiter la fréquence des requêtes des interfaces API pour éviter d'être attaqué ou abusé ;
  • cors : utilisé pour le partage de ressources entre domaines, autorisant les requêtes inter-domaines ;
  • csrf : utilisé pour empêcher les requêtes inter-domaines ; -attaques par falsification de requête de site ;

Nous pouvons utiliser ces middlewares directement dans la définition de la route, comme indiqué ci-dessous :

// 定义需要认证的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. Middleware personnalisé#🎜 🎜#
En plus d'utiliser le middleware intégré de Laravel, nous pouvons également personnaliser le middleware pour implémenter une logique de vérification plus complexe.

Par exemple, si on veut vérifier que la requête API contient un paramètre token et que le token est valide, on peut créer un middleware personnalisé pour implémenter cette fonction : #🎜🎜 #
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);
}
#🎜🎜 #Dans le code ci-dessus, nous obtenons d'abord le paramètre "token" dans la requête et vérifions si le jeton est valide. S'il n'est pas valide, un code d'état 401 et un message d'erreur sont renvoyés. Sinon, poursuivez le traitement de la demande.

Enfin, nous pouvons utiliser ce middleware personnalisé dans la définition de la route :

Route::middleware(['validate_token'])->group(function () {
    Route::post('/api/qux', 'QuxController@create');
});

Summary

Dans Laravel, nous pouvons utiliser la validation intégrée règles, middleware et middleware personnalisé pour vérifier les demandes d'API et améliorer la sécurité des API. Dans le même temps, nous pouvons également mettre en œuvre une logique de vérification plus complexe basée sur des besoins métier spécifiques pour protéger l’interface API contre les abus ou les attaques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn