/ / Usuń tokena csrf tylko dla jednej metody - Laravel - laravel, laravel-5, laravel-routing, csrf-protection

Usuń token csrf tylko dla jednej metody - Laravel - laravel, laravel-5, laravel-routing, csrf-protection

Korzystam z api bramki płatności paytabs. W tym interfejsie adres URL przekierowania musi zostać podany, aby po zakończeniu transakcji strona automatycznie przekierowywała do podanego adresu URL przekierowania. Url był adresem URL GET, ale ponieważ odpowiedź api pochodzi z typu POST, nie mogłem użyć adresu url. Aby rozwiązać ten problem, utworzyłem tę trasę jako adres URL POST, ale dzięki temu, że zostałem wysłany, nie otrzymuję żadnego tokena CSRF. W końcu dostaję ten problem.

TokenMismatchException in VerifyCsrfToken.php line 68:

Czy jest jakiś sposób, w jaki mógłbym wyłączyć funkcję tokenu CSRF tylko dla pojedynczego adresu URL POST?

- PROPOZYCJA POMOCY - Zrobiłem to zgodnie z twoją sugestią

class VerifyCsrfToken extends Middleware
{
protected $except = [
"signup/complete",
];
}

i teraz dostaję

Class "Middleware" not found

Odpowiedzi:

3 dla odpowiedzi № 1

Od doktorzy:

Zazwyczaj takie trasy należy umieszczać poza grupą oprogramowania pośredniego, które RouteServiceProvider ma zastosowanie do wszystkich tras w routes/web.php plik. Możesz jednak wykluczyć trasy, dodając swoje identyfikatory URI do właściwości $ except w pliku VerifyCsrfToken middleware:

class VerifyCsrfToken extends Middleware
{
protected $except = [
"stripe/*",
"http://example.com/foo/bar",
"http://example.com/foo/*",
];
}

0 dla odpowiedzi nr 2

Możesz zrobić wyjątek w oprogramowaniu pośredniczącym csrf. przejdź do app / http / Middleware / VirefyCsrfToken.php

class VerifyCsrfToken extends BaseVerifier{
protected $except = [
"route url1",
"route url2",

]
}