Laravel - VerifyCsrfToken exclude не работает - PullRequest
3 голосов
/ 27 мая 2020

У меня проблема с исключением маршрута из проверки токена CSRF.

Я пытаюсь исключить все запросы на конечной точке, которую я называю mydomain.com/example, поэтому мне нравится это в VerifyCsrfToken. php file.

class VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'example/*',
    ];
}

Но это не решает проблему. Если я сделаю это в файле app / Http / Kernel. php, все будет работать как надо.

Кто-нибудь знает, почему я не могу исключить указанные c маршруты?

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            //\App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \Barryvdh\Cors\HandleCors::class,
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Используйте

protected $except = [
    '/example/*',
];

Не забудьте указать sla sh / в начале.

2 голосов
/ 27 мая 2020

Вы исключаете каждый маршрут ПОСЛЕ"/ example" с помощью подстановочного знака, а промежуточное ПО не зарегистрировано в ядре и, следовательно, даже не работает

protected $except = [
    '/example'
];

И не Не забудьте раскомментировать промежуточное ПО

'web' => [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    // \Illuminate\Session\Middleware\AuthenticateSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class, // <--- HERE
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
    \Barryvdh\Cors\HandleCors::class,
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...