我知道$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/