Laravel 8 白名单
有时候你可能希望设置一组不需要的 CSRF 保护的 URL 。例如,如果你正在使用 Stripe 处理付款并使用了他们的 webhook 系统,你会需要从 CSRF 的保护中排除 Stripe webhook 处理程序路由,因为 Stripe 并不会给你的路由发送 CSRF 令牌。
典型做法,你可以把这类路由放在 routes/web.php
外,因为 RouteServiceProvider
的 web
中间件适用于该文件中的所有路由。不过,你也可以通过将这类 URL 添加到 VerifyCsrfToken
中间件的 $except
属性来排除对这类路由的 CSRF 保护,如下所示:
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* 从 CSRF 验证中排除的 URI
*
* @var array
*/
protected $except = [
'stripe/*',
'http://example.com/foo/bar',
'http://example.com/foo/*',
];
}
技巧:当 运行测试 时, CSRF 中间件会自动禁用。