我正在使用 Laravel 5 开发应用程序。我的应用程序与 VendHQ API 连接,我打算通过他们的 webhook 从 VendHQ 获取一些数据。根据他们的Documentation
When an event happens and triggers a webhook, we’ll send a POST request to a URL of your choosing. The POST request will be in the UTF-8 charset, and application/x-www-form-urlencoded encoding.
问题是,当他们尝试向我的 Laravel 应用发送 POST 请求时,他们的 post 请求中没有添加 CSRF token ,并且 VerifyCsrfToken
中间件正在寻找 token ,最后它抛出一个 TokenMismatchException
。
我的问题是,我怎样才能避免这个默认的 VerifyCsrfToken
某些特定路由的中间件,同时保持其他发布请求处于事件状态?
最佳答案
在 Laravel 5 中,这已经发生了一些变化。现在您可以简单地在类的 $except
数组中添加要从 csrftoken 验证中排除的路由
'VerifyCsrfToken' (\app\Http\Middleware\VerifyCsrfToken.php):
class VerifyCsrfToken extends BaseVerifier
{
protected $except = [
// Place your URIs here
];
}
示例:
1。如果您使用的是路由组:
Route::group(array('prefix' => 'api/v2'), function()
{
Route::post('users/valid','UsersController@valid');
});
您的 $except
数组如下所示:
protected $except = ['api/v2/users/valid'];
2。如果您使用的是简单路线
Route::post('users/valid','UsersController@valid');
您的 $except
数组如下所示:
protected $except = ['users/valid'];
3。如果要排除主路由下的所有路由(本例中为用户)
您的 $except
数组如下所示:
protected $except = ['users/*'];
见:http://laravel.com/docs/master/routing#csrf-excluding-uris
关于php - 在 Laravel 5 中,如何禁用特定路由的 VerifycsrfToken 中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31223189/