如何在Laravel5.2中禁用默认Web中间件?

时间:2016-06-10 09:46:07

标签: laravel-5.2

我有服务器异步通知路由:

Route::post('notify/payment/{gateway}','Payment@receiveNotify')

如何禁用默认的Web中间件? (session和verifycsrftoken)

4 个答案:

答案 0 :(得分:3)

它位于dplyr的{​​{1}}方法中。

  

请记住,Web中间件组由RouteServiceProvider自动应用于您的默认routes.php文件。

https://www.laravel.com/docs/5.2/middleware#middleware-groups

答案 1 :(得分:0)

是的,你可以删除'middleware'=> 'web'完全阻止并像往常一样继续。

但我更喜欢以下选项。

转到您的app / providers / RouteServiceProvider.php文件并根据需要更新如下:

例如:

public function map(Router $router)
{
    $this->mapWebRoutes($router);
    $this->mapApiRoutes($router);
}


protected function mapWebRoutes(Router $router)
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'web',
    ], function ($router) {
        require app_path('Http/routes.php');
    });

}


protected function mapApiRoutes(Router $router)
{
     $router->group([
         'namespace' => $this->namespace, 'middleware' => 'api',
     ], function ($router) {
         require app_path('Http/routes-api.php');
     });
}

答案 2 :(得分:0)

就我而言,由于我使用的是基于API的开发,我只是在app / Http / Kernel.php中注释掉了这一行

// \ App \ Http \ Middleware \ VerifyCsrfToken :: class,

答案 3 :(得分:0)

从Laravel 7.7开始,您可以使用方法withoutMiddleware,例如:

Route::post('notify/payment/{gateway}','Payment@receiveNotify')->withoutMiddleware(['csrf']);