php - 在 Laravel 5 中,如何禁用特定路由的 VerifycsrfToken 中间件?

标签 php laravel laravel-5 csrf

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

相关文章:

php - 通过ajax php删除行

php - MySQL:使用同一网页更新列项目

php - 如何显示 UNIQUE KEY 的错误

php - 找不到自定义 "Request"类

json - laravel 按数据字段为用户选择通知

java - JSON 无法在 JAVA 中从 PHP 解析

laravel - 使用 Modell::find(array()) 时如何在 Laravel 中分页

PHP - Laravel 检查全局首次登录

mysql - 如何在 Laravel Eloquent 地解决对 json 数据的 case-sensitive where like 语句?

php - 如何返回记录不可用的错误消息?