![](/img/trans.png)
[英]Laravel 5.4: Exclude a route with parameters from CSRF verification
[英]Is there a way to exclude a route from CSRF protection from within a package in Laravel 5?
我知道VerifyCsrfToken
中间件( app/Http/Middleware/VerifyCsrfToken.php
)的$except
属性,但我正在寻找一种方法来从我的包中做类似的事情(所以安装它的用户不必修改他们的VerifyCsrfToken.php
用于我的工作路线)。
我能够在我的包上定义路由,但我不知道如何从默认中间件中排除其中一个(或多个)。 我试过在我自己的包装上扩展Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken
而没有运气。
不,那里没有。 在app/Http/Kernel.php
类的$middleware
属性中提供中间件时始终执行。
这是一件好事。 您希望让开发人员完全控制是否要在其应用程序中启用安全检查。
如果您确实需要路由上的异常,则可以简单地要求手动将该异常添加到VerifyCsrfToken
类。
据我所知,服务容器无法访问VerifyCsrfToken
类中的$except
数组。 即使您可以找到创建中间件实例的方法,内核也只会创建一个新的中间件类实例。 因为异常列表不是静态的,所以不可能改变它。
是的,它实际上非常简单,也包含在这里的文档中,但为了简单起见,这里提供的答案供您参考:
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'stripe/*',
];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.