我知道$except中间件(VerifyCsrfToken)的app/Http/Middleware/VerifyCsrfToken.php属性,但是我正在寻找一种从我的软件包中执行类似操作的方法(因此,安装该软件包的用户不必修改自己的VerifyCsrfToken.php即可使用我的工作路线)。

我可以在程序包上定义路由,但是我不知道如何从默认中间件中排除一个(或多个)路由。我尝试在自己的程序包上扩展Illuminate\Foundation\Http\Middleware\VerifyCsrfToken,但是没有运气。

最佳答案

不,那里没有。在$middleware类的app/Http/Kernel.php属性中提供时,总是执行中间件。

这是一件好事。您想让开发人员完全控制他们是否要在其应用程序中启用安全检查。

如果您确实在路由上需要异常(exception),则可以简单地要求将异常(exception)手动添加到VerifyCsrfToken类。

据我所知,服务容器绝不能访问$except类中的VerifyCsrfToken数组。即使您找到创建中间件实例的方法,内核也将创建中间件类的新实例。由于异常(exception)列表不是静态列表,因此无法更改此列表。

关于php - 有没有办法在Laravel 5的软件包中从CSRF保护中排除路由?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33177674/

10-11 12:43