仅针对单个方法删除csrf令牌 - Laravel

问题描述 投票:3回答:3

我正在使用paytabs支付网关api。在该api中,必须提供重定向URL,以便在事务完成后,页面将自动重定向到您指定的重定向URL。网址是一个GET网址,但由于api的响应是POST类型,我无法使用get url。为了解决这个问题,我将该路由设为POST网址,但是通过使其成为post方法,我没有获得任何CSRF令牌。最后,我得到了这个问题。

TokenMismatchException in VerifyCsrfToken.php line 68:

有什么办法可以为单个POST网址禁用CSRF令牌功能吗?

- 尝试了 - 我根据你的建议做了这件事

class VerifyCsrfToken extends Middleware
{
    protected $except = [
        'signup/complete',
    ];
}

现在开始

Class 'Middleware' not found
laravel laravel-5 laravel-routing csrf-protection
3个回答
5
投票

来自the docs

通常,您应将这些类型的路由放在RouteServiceProvider应用于routes/web.php文件中所有路由的Web中间件组之外。但是,您也可以通过将其URI添加到VerifyCsrfToken中间件的$ except属性来排除路由:

class VerifyCsrfToken extends Middleware
{
    protected $except = [
        'stripe/*',
        'http://example.com/foo/bar',
        'http://example.com/foo/*',
    ];
}

0
投票

您可以在csrf中间件中例外。转到app / http / Middleware / VirefyCsrfToken.php

class VerifyCsrfToken extends BaseVerifier{
    protected $except = [
     'route url1',
     'route url2',

    ]
}

0
投票

如何在项目文件夹/app/http/middleware/VerifyCsrfToken.php中使用localhost编辑

protected $except = [
    //
    'http://localhost/blog/return_url',  // your url
];
© www.soinside.com 2019 - 2024. All rights reserved.