Heim > PHP-Framework > Laravel > Hauptteil

So überprüfen Sie, ob Sie eine API in Laravel schreiben

PHPz
Freigeben: 2023-05-20 19:30:53
Original
899 Leute haben es durchsucht

Mit der Popularität von Web-APIs wird die Sicherheit von APIs immer wichtiger. In Laravel können wir integrierte Validierungsregeln und Middleware verwenden, um API-Anfragen zu validieren und zu schützen.

  1. Verwenden Sie die integrierten Validierungsregeln von Laravel.

Laravel bietet eine Reihe von Validierungsregeln, z. B. „erforderlich“ (erforderlich), „E-Mail“ (E-Mail-Format) usw. Wir können diese Regeln auf unsere API-Schnittstelle anwenden, um die Richtigkeit der Schnittstellenparameter sicherzustellen.

Wenn wir beispielsweise die Parameter einer registrierten API-Schnittstelle überprüfen möchten, können wir den folgenden Code verwenden:

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

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

    // 注册用户
    // ...
}
Nach dem Login kopieren

Im obigen Code verwenden wir die Methode $request->validate(), um die Anforderungsparameter zu überprüfen . Wenn die Validierung fehlschlägt, löst Laravel automatisch eine ValidationException aus, und dann müssen wir diese Ausnahme im Ausnahmehandler behandeln.

  1. Verwenden Sie die integrierte Middleware von Laravel.

Laravel bietet außerdem zahlreiche Middleware zur Verbesserung der API-Sicherheit. Im Folgenden sind einige häufig verwendete Middleware aufgeführt:

  • auth: wird zur Benutzerauthentifizierung verwendet und ermöglicht nur angemeldeten Benutzern den Zugriff auf die Schnittstelle;
  • throttle: wird verwendet, um die Anforderungshäufigkeit der API-Schnittstelle zu begrenzen, um Angriffe oder Missbrauch zu vermeiden;
  • cors: Wird für die domänenübergreifende gemeinsame Nutzung von Ressourcen verwendet.
  • csrf: Wird verwendet, um Cross-Site-Request-Forgery-Angriffe zu verhindern.

Wir können diese Middleware direkt in Routing-Definitionen verwenden, wie unten gezeigt:

// 定义需要认证的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');
});
Nach dem Login kopieren
  1. Benutzerdefinierte Middleware

Zusätzlich zur Verwendung der integrierten Middleware von Laravel können wir die Middleware auch anpassen, um eine komplexere Verifizierungslogik zu implementieren.

Wenn wir beispielsweise überprüfen möchten, ob die API-Anfrage einen Token-Parameter enthält und das Token gültig ist, können wir eine benutzerdefinierte Middleware erstellen, um diese Funktion zu erreichen:

php artisan make:middleware ValidateToken
Nach dem Login kopieren
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);
}
Nach dem Login kopieren

Im obigen Code erhalten wir zuerst das „Token“. " Parameter in der Anfrage und prüfen Sie, ob das Token gültig ist. Wenn es ungültig ist, werden ein 401-Statuscode und eine Fehlermeldung zurückgegeben. Ansonsten bearbeiten Sie die Anfrage weiter.

Schließlich können wir diese benutzerdefinierte Middleware in der Routendefinition verwenden:

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

Zusammenfassung

In Laravel können wir integrierte Validierungsregeln, Middleware und benutzerdefinierte Middleware verwenden, um API-Anfragen zu validieren und die API-Sicherheit zu verbessern. Gleichzeitig können wir auch komplexere Verifizierungslogiken implementieren, die auf spezifischen Geschäftsanforderungen basieren, um die API-Schnittstelle vor Missbrauch oder Angriffen zu schützen.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie, ob Sie eine API in Laravel schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage