Mit der Einführung von Laravel 5.7 haben viele Benutzer Probleme mit der Zugriffsweiterleitung gemeldet. Das Auftreten dieses Problems kann dazu führen, dass Sie während des Entwicklungsprozesses viel Zeit verschwenden. Um Ihnen bei der Lösung dieses Problems zu helfen, wird in diesem Artikel die Lösung für das Problem, dass Laravel 5.7 nicht auf das Routing zugreifen kann, ausführlich vorgestellt.
Zuerst müssen wir einige neue Änderungen in Laravel 5.7 verstehen, die dazu führen können, dass früherer Code nicht richtig ausgeführt wird. Eine der wichtigsten Änderungen ist die standardmäßige Hinzufügung der CSRF-Schutz-Middleware. Diese Middleware kann sicherstellen, dass die vom Benutzer übermittelten Formulardaten von Ihrer Anwendung stammen und die Anwendung vor CSRF-Angriffen schützen.
CSRF-Schutz-Middleware existiert bereits in Laravel 5.6, ist jedoch standardmäßig nicht aktiviert. Aber in Laravel 5.7 hat das Laravel-Team diese Middleware standardmäßig aktiviert. Daher müssen Sie in Laravel 5.7 ein CSRF-Token hinzufügen, wenn Sie Daten über ein Formular übermitteln.
Lösung:
Es gibt zwei Methoden, um das Problem zu lösen, dass Laravel 5.7 nicht auf das Routing zugreifen kann. Die erste Methode besteht darin, das CSRF-Token in der Datei web.php hinzuzufügen. Die zweite Methode besteht darin, die CSRF-Schutz-Middleware zu deaktivieren.
Methode 1: Fügen Sie das CSRF-Token in der web.php-Datei hinzu.
Die Web-Middleware-Gruppe wird standardmäßig in der RouteServiceProvider.php des Laravel 5.7-Codes verwendet. Daher ist es der einfachste Weg, das CSRF-Token im Web hinzuzufügen. PHP-Datei ist Verwenden Sie die Methode {{ csrf_field() }}.
Wenn Sie beispielsweise eine Route haben, die POST-Anfragen verarbeitet:
Route::post('/foo', function () {
return 'Hello World';
});
Sie müssen {{ csrf_field() } hinzufügen the form } Methode zum Generieren eines CSRF-Tokens:
Diese Methode stellt sicher, dass Ihre Laravel 5.7-Anwendung POST normal verarbeiten kann .
Methode 2: CSRF-Schutz-Middleware deaktivieren
Das Deaktivieren der CSRF-Schutz-Middleware ist eine weitere Möglichkeit, das Problem zu lösen, dass Laravel 5.7 nicht auf das Routing zugreifen kann. Obwohl dieser Ansatz die Sicherheit Ihrer Laravel-Anwendung leicht beeinträchtigen kann, ist er machbar, wenn Ihre Anwendung nicht durch CSRF-Angriffe gefährdet ist.
Um die CSRF-Schutz-Middleware zu deaktivieren, müssen Sie den zu ignorierenden URI im $exclusive-Attribut der VerifyCsrfToken-Klasse hinzufügen.
Öffnen Sie die Datei app/Http/Middleware/VerifyCsrfToken.php und fügen Sie die Routen, die Sie ignorieren möchten, im Attribut $exclusive hinzu:
protected $exclusive = [
'your-route-to-ignore'
];
Angenommen, Sie möchten dies Ignorieren Sie die Route „Registrieren“ :
protected $exclusive = [
'register'
];
Diese Methode stellt sicher, dass Ihre Laravel 5.7-Anwendung alle Anfragen normal verarbeiten kann.
Fazit:
Im Allgemeinen wird das Problem, in Laravel 5.7 nicht auf das Routing zugreifen zu können, hauptsächlich dadurch verursacht, dass die CSRF-Schutz-Middleware standardmäßig aktiviert ist. Wenn dieses Problem während der Entwicklung auftritt, können Sie daher diese beiden Methoden ausprobieren, um es zu lösen. Wenn Sie die CSRF-Schutz-Middleware deaktivieren möchten, sollten Sie sie nur für Routen verwenden, die keine sensiblen oder wichtigen Daten beinhalten. Diese Methode kann die Sicherheit Ihrer Laravel-Anwendung leicht beeinträchtigen. Daher wird empfohlen, Methode eins zu verwenden, um die Sicherheit Ihrer Anwendung zu gewährleisten.
Das obige ist der detaillierte Inhalt vonLaravel 5.7 kann nicht auf das Routing zugreifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!