使用 Laravel,我添加了 Affirm 并且在我的 affirm.checkout 数据中,我将 user_confirmation_url 设置为转到专门处理 Affirm 订单的路由:
affirm.checkout({
"merchant": {
"user_confirmation_url": "http://127.0.0.1:8000/affirm-order",
...
当对该 URL 发出请求时,我收到 419 错误,因为没有 CSRF 令牌。
我怎样才能在那个 url 中包含一个 csrf 令牌?
我尝试将
@csrf
添加到页面,并制作网址"user_confirmation_url": "http://127.0.0.1:8000/affirm-order?token={{csrf_token()}}",
,但这没有用。
如果
http://127.0.0.1:8000/affirm-order
是结帐服务完成后必须调用的 url,则它无法知道正确的 CSRF 令牌。您必须在 VerifyCsrfToken
中间件中为该特定端点添加一个例外。
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array<int, string>
*/
protected $except = [
'affirm-order',
];
}