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.
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.
Laravel fournit également de nombreux middleware pour améliorer la sécurité des API. Voici quelques middlewares couramment utilisés :
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'); });
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); }
Route::middleware(['validate_token'])->group(function () { Route::post('/api/qux', 'QuxController@create'); });
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!