我正在使用Laravel 5开发应用程序。我的应用程序已与VendHQ API连接,我打算通过其Webhook从VendHQ获取一些数据。根据他们的Documentation



问题是,当他们尝试向我的Laravel应用发送POST请求时,没有在他们的发布请求中添加CSRF token ,并且VerifyCsrfToken中间件正在寻找 token ,最后它抛出TokenMismatchException

我的问题是,如何在某些其他路由中避免使用默认的VerifyCsrfToken中间件,同时保持其他发布请求的 Activity 状态?

最佳答案

默认情况下,Laravel 5中的所有路由都启用CSRF,您可以通过修改app/Http/Middleware/VerifyCsrfToken.php将其禁用于特定路由

//app/Http/Middleware/VerifyCsrfToken.php

//add an array of Routes to skip CSRF check
private $openRoutes = ['free/route', 'free/too'];

//modify this function
public function handle($request, Closure $next)
    {
        //add this condition
    foreach($this->openRoutes as $route) {

      if ($request->is($route)) {
        return $next($request);
      }
    }

    return parent::handle($request, $next);
  }

source

10-01 13:22