我有服务器异步通知路由:
Route::post('notify/payment/{gateway}','Payment@receiveNotify')
如何禁用默认的Web中间件? (session和verifycsrftoken)
答案 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']);