___ qstntxt ___

Ich bin nur beginnend, also bitte vergib mir. Ich habe einen guten Überblick über CodeIgniter, also verstehe ich, was vor sich geht. Ich stelle jedoch fest, dass mein CSRF-Token leer ist, wenn ich ein Formular erstelle. Ich arbeite durch die Laracasts-Videos, um den Laravel-Workflow zu ermüden.

myfile.blade.php

%Vor%

Hier ist, was ich bekomme, wenn ich die Quelle ansehe:

%Vor%

Ich habe das Verzeichnis config durchgesehen, sehe aber nichts, csrf zu aktivieren. Gibt es irgendwo eine zusätzliche Einstellung, die ich aktualisieren muss?

Danke für Ihre Vorschläge.

BEARBEITEN

Auch das gibt mir ein leeres verstecktes Eingabefeld:

%Vor%

BEARBEITEN

So sieht mein Controller aus:

%Vor%

Also sieht mein aktuelles Formular-Tag so aus:

%Vor%

Wenn ich absende, kann ich die json-Antwort sehen - der Token ist offensichtlich leer.

%Vor%     
___ answer34422779 ___

Es sollte

sein %Vor%     
___ answer35710859 ___

Ich habe das Problem des HtmlService-Anbieters behoben. 5.2 Version entfernt Illuminate und add kollektiv folgen dem Schritt, um das Problem zu lösen:

  1. %code%
  2. %code%
  3. Fügen Sie in config / app.php
  4. hinzu

%code%

Dann können Sie dieses Formular verwenden.

    
___ tag123laravel ___ Laravel ist ein Open-Source-PHP-Web-Framework, das dem MVC-Muster folgt. ___ tag123csrf ___ Cross Site Request Forgery ist ein böswilliger Angriff, um die Vertrauenswürdigkeit einer Website in den Browser eines Benutzers auszunutzen. ___ answer37181006 ___

Wenn Sie eine Anmeldeseite haben und die Sitzung mit folgendem Befehl löschen möchten:

%Vor%

Vergessen Sie nicht, dass dies auch das csrf-Token bereinigt, bevor es in die Ansicht eingefügt werden kann

    
___ answer34423700 ___

Dies ist ein Konfigurationsproblem. Sie müssen den App-Schlüssel in Ihrer Konfigurationsdatei %code% auf eine Zeichenfolge mit 32 Zeichen setzen oder artisan cli %code% verwenden, um den Schlüssel für Sie zu generieren, damit Sie das CSRF-Token verwenden können.

Stellen Sie außerdem sicher, dass Sie Routen einschließen, die das CSRF-Token in der Gruppenroute %code% verwenden.

  

Sie können URIs ausschließen, indem Sie ihre Routen außerhalb der Web-Middleware-Gruppe definieren, die in der Standarddatei routes.php enthalten ist, oder indem Sie die URIs der Eigenschaft $ exert der VerifyCsrfToken-Middleware hinzufügen: Ссылка

    
___ answer34423476 ___

Die Laravel Grundlegende Reihe ist für Laravel 5.0, also hast du ein paar Optionen. Sie können Laravel 5.0 installieren, um mit dieser Serie fortzufahren. Um L5.0 zu installieren, müssen Sie diesen Befehl ausführen:

%Vor%

Wenn du Laravel 5.2 benutzen willst (was ich empfehlen würde und Jeffrey Way wird höchstwahrscheinlich bald eine Serie veröffentlichen), gibt es einige zusätzliche Dinge, die du beachten solltest.

Stellen Sie zuerst alle Ihre Routen in eine "Web" -Middleware-Gruppe wie folgt:

%Vor%

In der Vergangenheit gab es mehrere Middlewares, die bei jeder Anfrage standardmäßig ausgeführt wurden. In 5.2 ist dies nicht mehr der Fall. Zum Beispiel wird das Token in der Sitzung gespeichert, aber in 5.2 werden Dinge wie die Middleware "StartSession" nicht automatisch angewendet. Daher muss die "Web" -Middleware auf Ihre Routen angewendet werden. Der Grund für diese Änderung in 5.2:

  

Middleware-Gruppen ermöglichen es Ihnen, mehrere Routen-Middleware unter einem einzigen, komfortablen Schlüssel zu gruppieren, sodass Sie einer Route mehrere Middleware gleichzeitig zuweisen können. Dies kann beispielsweise nützlich sein, wenn Sie eine Web-Benutzeroberfläche und eine API in derselben Anwendung erstellen. Sie können die Session- und CSRF-Routen in eine %code% -Gruppe und vielleicht den Ratenbegrenzer in der %code% -Gruppe gruppieren.

Auch in der Laravel Fundamental-Serie zieht Jeffrey das "illuminate / html" -Paket ein, aber jetzt benutzen die meisten Leute das Laravel-Sammelpaket. Sie behandeln eine Menge der Laravel-Pakete, die aus dem Kern herausgenommen werden. Als Ergebnis würde ich das "illuminate / html" -Paket entfernen. Entfernen Sie in Ihrer %code% -Datei %code% (oder was auch immer im Abschnitt require steht). Entfernen Sie außerdem den entsprechenden Dienstanbieter und erstellen Sie Fassaden, die Sie Ihrer %code% -Datei hinzugefügt haben.

Um die Laravel-Kollektivversion zu installieren, fügen Sie diese in Ihrer %code% -Datei hinzu: %code% . Führen Sie dann %code% aus. Sobald dies geschehen ist, fügen Sie dies in Ihrer %code% -Datei Ihrem Provider-Array hinzu:

%Vor%

und fügen Sie dies Ihrem Alias-Array hinzu:

%Vor%

Ich hoffe, ich verpasse nichts anderes.

    
___

8

Ich bin nur beginnend, also bitte vergib mir. Ich habe einen guten Überblick über CodeIgniter, also verstehe ich, was vor sich geht. Ich stelle jedoch fest, dass mein CSRF-Token leer ist, wenn ich ein Formular erstelle. Ich arbeite durch die Laracasts-Videos, um den Laravel-Workflow zu ermüden.

myfile.blade.php

%Vor%

Hier ist, was ich bekomme, wenn ich die Quelle ansehe:

%Vor%

Ich habe das Verzeichnis config durchgesehen, sehe aber nichts, csrf zu aktivieren. Gibt es irgendwo eine zusätzliche Einstellung, die ich aktualisieren muss?

Danke für Ihre Vorschläge.

BEARBEITEN

Auch das gibt mir ein leeres verstecktes Eingabefeld:

%Vor%

BEARBEITEN

So sieht mein Controller aus:

%Vor%

Also sieht mein aktuelles Formular-Tag so aus:

%Vor%

Wenn ich absende, kann ich die json-Antwort sehen - der Token ist offensichtlich leer.

%Vor%     
Damon 22.12.2015, 19:04
quelle

5 Antworten

27

Die Laravel Grundlegende Reihe ist für Laravel 5.0, also hast du ein paar Optionen. Sie können Laravel 5.0 installieren, um mit dieser Serie fortzufahren. Um L5.0 zu installieren, müssen Sie diesen Befehl ausführen:

%Vor%

Wenn du Laravel 5.2 benutzen willst (was ich empfehlen würde und Jeffrey Way wird höchstwahrscheinlich bald eine Serie veröffentlichen), gibt es einige zusätzliche Dinge, die du beachten solltest.

Stellen Sie zuerst alle Ihre Routen in eine "Web" -Middleware-Gruppe wie folgt:

%Vor%

In der Vergangenheit gab es mehrere Middlewares, die bei jeder Anfrage standardmäßig ausgeführt wurden. In 5.2 ist dies nicht mehr der Fall. Zum Beispiel wird das Token in der Sitzung gespeichert, aber in 5.2 werden Dinge wie die Middleware "StartSession" nicht automatisch angewendet. Daher muss die "Web" -Middleware auf Ihre Routen angewendet werden. Der Grund für diese Änderung in 5.2:

  

Middleware-Gruppen ermöglichen es Ihnen, mehrere Routen-Middleware unter einem einzigen, komfortablen Schlüssel zu gruppieren, sodass Sie einer Route mehrere Middleware gleichzeitig zuweisen können. Dies kann beispielsweise nützlich sein, wenn Sie eine Web-Benutzeroberfläche und eine API in derselben Anwendung erstellen. Sie können die Session- und CSRF-Routen in eine web -Gruppe und vielleicht den Ratenbegrenzer in der api -Gruppe gruppieren.

Auch in der Laravel Fundamental-Serie zieht Jeffrey das "illuminate / html" -Paket ein, aber jetzt benutzen die meisten Leute das Laravel-Sammelpaket. Sie behandeln eine Menge der Laravel-Pakete, die aus dem Kern herausgenommen werden. Als Ergebnis würde ich das "illuminate / html" -Paket entfernen. Entfernen Sie in Ihrer composer.json -Datei "illuminate/html: 5.0" (oder was auch immer im Abschnitt require steht). Entfernen Sie außerdem den entsprechenden Dienstanbieter und erstellen Sie Fassaden, die Sie Ihrer config/app.php -Datei hinzugefügt haben.

Um die Laravel-Kollektivversion zu installieren, fügen Sie diese in Ihrer composer.json -Datei hinzu: "laravelcollective/html": "5.2.*-dev" . Führen Sie dann composer update aus. Sobald dies geschehen ist, fügen Sie dies in Ihrer config/app.php -Datei Ihrem Provider-Array hinzu:

%Vor%

und fügen Sie dies Ihrem Alias-Array hinzu:

%Vor%

Ich hoffe, ich verpasse nichts anderes.

    
Thomas Kim 22.12.2015, 19:54
quelle
2

Dies ist ein Konfigurationsproblem. Sie müssen den App-Schlüssel in Ihrer Konfigurationsdatei ...config/app.php auf eine Zeichenfolge mit 32 Zeichen setzen oder artisan cli php artisan key:generate verwenden, um den Schlüssel für Sie zu generieren, damit Sie das CSRF-Token verwenden können.

Stellen Sie außerdem sicher, dass Sie Routen einschließen, die das CSRF-Token in der Gruppenroute web verwenden.

  

Sie können URIs ausschließen, indem Sie ihre Routen außerhalb der Web-Middleware-Gruppe definieren, die in der Standarddatei routes.php enthalten ist, oder indem Sie die URIs der Eigenschaft $ exert der VerifyCsrfToken-Middleware hinzufügen: Ссылка

    
Jimmy Obonyo Abor 22.12.2015 20:08
quelle
1

Wenn Sie eine Anmeldeseite haben und die Sitzung mit folgendem Befehl löschen möchten:

%Vor%

Vergessen Sie nicht, dass dies auch das csrf-Token bereinigt, bevor es in die Ansicht eingefügt werden kann

    
Sevenearths 12.05.2016 08:12
quelle
0

Es sollte

sein %Vor%     
Chaudhry Waqas 22.12.2015 19:06
quelle
0

Ich habe das Problem des HtmlService-Anbieters behoben. 5.2 Version entfernt Illuminate und add kollektiv folgen dem Schritt, um das Problem zu lösen:

  1. composer require laravelcollective/html
  2. composer update
  3. Fügen Sie in config / app.php
  4. hinzu

'providers' => ['Collective\Html\HtmlServiceProvider'], 'aliases' => [ 'Form' => 'Collective\Html\FormFacade', 'Html' => 'Collective\Html\HtmlFacade', ],

Dann können Sie dieses Formular verwenden.

    
user4556117 29.02.2016 22:19
quelle

Tags und Links