我正在使用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