wake-up-neo.com

Deaktivieren Sie csrf in laravel für eine bestimmte Route

Ich habe ein Zahlungssystem, bei dem Daten an Websites von Drittanbietern übermittelt und dann zurückgeschickt werden ...

Wenn Daten zurückgegeben werden, trifft sie auf eine bestimmte URL, sagen wir/ok route. $_REQUEST['transaction'].

Aber aufgrund von laravel Middleware bekomme ich eine Token-Nichtübereinstimmung. Es gibt keine Möglichkeit, eine Zahlungs-API von Drittanbietern zu generieren. Wie kann ich sie deaktivieren? Nur für diese Route?

oder gibt es eine bessere Option?

Route::get('/payment/ok',   '[email protected]');
Route::get('/payment/fail', '[email protected]');

public function Ok( Request $request )
{
    $transId = $request->get('trans_id');

    if ( isset( $transId ) )
    {

        return $transId;

    }

}
37
user796443

Seit Version 5.1 Laravels VerifyCsrfToken Middleware können Routen angegeben werden, die von der CSRF-Validierung ausgeschlossen sind. Um dies zu erreichen, müssen Sie die Routen zu $ außer Array in Ihrer App\Http\Middleware\VerifyCsrfToken.php Klasse hinzufügen:

<?php namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
  protected $except = [
    'payment/*',
  ];
}

Weitere Informationen finden Sie in docs .

93
jedrzej.kurylo