关于composer包注册路由未经过csrf验证的问题

在使用第三方包的时候,发现一个点,就是它注册的post路由是没有经过csrf验证的。

具体注册代码如下:

if (!$this->app->routesAreCached()) {
   $router->group(array_merge(['namespace' => __NAMESPACE__], config('ueditor.route.options', [])), function ($router) {
       $router->any(config('ueditor.route.name', '/ueditor/server'), 'UEditorController@serve');
   });
}

这里注册的是any,也就是说包含了post,想象中laravel框架应该会对所有post路由进行csrf验证才对,后来发现不是的,csrf中间件只会验证写在web.php里的路由,对于其他方式注册的路由,post是不会进行csrf验证的。想要手动加上post的csrf验证可以自己在web.php里面重新定义下想要验证的路由,比如这样:

Route::any('/ueditor/server', '\Overtrue\LaravelUEditor\UEditorController@serve');

这样就会覆盖掉composer包里的路由,走web.php的中间件验证