laravel 如何在Affirm Confirmation URL中包含CSRF令牌?

von4xj4u  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(115)

使用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,并将url设置为"user_confirmation_url": "http://127.0.0.1:8000/affirm-order?token={{csrf_token()}}",,但没有成功。

4dc9hkyq

4dc9hkyq1#

如果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',
    ];
}

相关问题