I've a payment system, where data is submitted to 3rd party site and than hauled back...

当数据返回时,它会点击特定的url,让我们说/ok route.$_REQUEST['transaction']

But because of laravel middleware I'm getting token mismatch. There is no way 3rd party payment API can generate token, so how I disable it? only for this route?

or is there a better option?

Route::get('/payment/ok',   'TransactionsController@Ok');
Route::get('/payment/fail', 'TransactionsController@Fail');

public function Ok( Request $request )
{
    $transId = $request->get('trans_id');

    if ( isset( $transId ) )
    {

        return $transId;

    }

}

推荐答案

由于5.1版Laravel的VerifyCsrfToken中间件允许指定从CSRF验证中排除的路由.为了实现这一点,您需要将路由添加到App\Http\Middleware\VerifyCsrfToken.php类的$except数组中:

<?php namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
  protected $except = [
    'payment/*',
  ];
}

See the docs for more information.

Laravel相关问答推荐

如何在Laravel中从多行中获取合并数组?

用Laravel Filament创建变形组件

如何使用 Laravel 查询生成器在 WHERE 条件周围添加括号

Carbon现在时间错了

Guzzle - Laravel如何使用 x-www-form-url-encoded 发出请求

Laravel:如何通过 id 从集合中删除项目

在 laravel 的集合中找到?例子

Laravel Session 总是改变 Laravel 5.4 中的每个刷新/请求

调用未定义的函数 mb_strimwidth

Laravel Nova - 重新排序左侧导航菜单项

Auth 在 Laravel Tinker 中不起作用

在Lumen框架中启用会话

Laravel 迁移命名约定

Laravel 4:将什么作为参数传递给 Url 类?

我在哪里放置可以显示 Flash 消息的 Laravel 4 辅助函数?

Laravel 验证存在于不存在的地方

将参数传递给 Laravel 中的中间件

Laravel 5如何获取路由动作名称?

错误:找不到模块 'webpack/lib/rules/DescriptionDataMatcherRulePlugin' 需要堆栈:

有没有办法让表名自动添加到 Eloquent 查询方法中?