如何通过Laravel控制器上的邮递员/失眠http客户端发送表单?

时间:2019-03-06 10:05:18

标签: laravel insomnia

我有一个带有以下代码的控制器

class FormController extends Controller
{
    public function submit(Request $request)
    {
        dd($request);

    }
}

我记得有关csrf保护的问题,并且在前端发现了csrf令牌。因此,我已将其添加到http客户端失眠的字段中。但是结果是我得到了以下

enter image description here

Content-Type为multipart/form-data。怎么了?

1 个答案:

答案 0 :(得分:2)

Laravel具有称为Web的中间件组,可以保护您的路线。它位于web.php文件中。 您可以在app/Providers/RouteServiceProvider.php

中看到路由中间件
protected function mapWebRoutes()
{
    Route::middleware('web')
         ->namespace($this->namespace)
         ->group(base_path('routes/web.php'));
}

网络中间件组向您的项目中添加了许多中间件,例如VerifyCsrfToken

您可以在“ app / Http / Kernel.php”中看到它们的列表

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
         \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];
您可能知道,

Laravel有另一个名为api的中间件和路由文件夹,它没有任何CSRF保护。 您可以将不需要CSRF保护(我的意思是应用程序的API)的路由声明为route/api.php

通过在route/api.php文件中声明这种路由,您可以使用类似应用程序的Postman / Insomnia轻松地发出请求。