Ich habe einen API-Aufruf mit Post-Daten; Sagen wir, das ist der Anmeldeprozess.Laravel API TokenMismatchException
Mit der Postbote Erweiterung von Chrome I, per Post, der Benutzername und das Passwort sende in den Benutzer anmelden Aber ich diese Nachricht erhalten:.
Illuminate \ Session \ TokenMismatchException
In meiner Basissteuerung ich habe:
/**
* Initializer.
*
* @return void
*/
public function __construct() {
// CSRF Protection
$this->beforeFilter('csrf', array('on' => 'post'));
// Layouts/Notifications
$this->messageBag = new Illuminate\Support\MessageBag;
}
Wenn ich die Zeile mit dem beforeFilter lösche, funktioniert alles einwandfrei. Aber das kann keine Lösung sein. Jeder POST-Aufruf würde diese Fehlermeldung erhalten. Ich weiß, dass ich dieses Token brauche. Aber wie bekomme ich dieses Token, wenn ich von der API anrufe? Ich weiß, dass ich in Laravel ein Token erstellen kann, aber wie kann ich das tun, wenn ich von außen über API anrufe?
Weil Sie benötigen das Token über als Parameter, wie der csrf Filter senden das _token Feld des Eingangs überprüfen. Wenn Sie es nicht senden, wird diese Überprüfung fehlschlagen. –
ok. Say für mehrdeutige Beschreibung ... Ich weiß, dass ich dieses Token brauche.Aber wie bekomme ich dieses Token wenn ich die API anrufe? Ich weiß, dass ich ein Token in Laravel erstellen kann, aber wie kann ich das tun, wenn ich von außen über API anrufe? – goldlife
Im Allgemeinen werden APIs für Cross-Site-Anfragen verwendet. Ihr CSRF-Schutz ist also sinnlos. Es wird hauptsächlich für Anwendungen und Websites verwendet. Aber deaktivieren Sie es bei der Anmeldung und dann bei erfolgreicher Anmeldung senden Sie den Benutzer den Wert csrf_token durch den Aufruf des Helfers 'csrf_token();' –