Heim > PHP-Framework > Laravel > Hauptteil

Laravel 5.7 kann nicht auf das Routing zugreifen

WBOY
Freigeben: 2023-05-20 15:59:39
Original
551 Leute haben es durchsucht

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';
Nach dem Login kopieren

});

Sie müssen {{ csrf_field() } hinzufügen the form } Methode zum Generieren eines CSRF-Tokens:

{{ csrf_field() }}
<!-- ... -->
Nach dem Login kopieren

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'
Nach dem Login kopieren

];

Angenommen, Sie möchten dies Ignorieren Sie die Route „Registrieren“ :

protected $exclusive = [

'register'
Nach dem Login kopieren

];

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!

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