仕事

【Laravel】419ステータスのHTTPエラーの対処方法!

Laravelで419エラーが出た場合の対処方法を解説する。

Laravelで419エラーが出た原因

今回起きたLaravelでの419エラーは、CSRF(クロスサイトリクエストフォージェリ)トークンを使用していない場合に発生したものでした。

CSRF(クロスサイトリクエストフォージェリ)とは

Laravelの419エラー解決方法

結論、CSRFを使用するか、CSRFの仕組みを無効かするか。

CSRFトークンを使用する

@csrfとform要素内に追加するだけ。

<form action="/auth/login" method="post">
  <!-- CSRF保護 -->
  @csrf
   <div class="form-group">
       <input type="text" name="username" value="{{ old('username') }}">
   </div>
</form>

 

CSRFの仕組みを無効化する

VerifyCsrfTokenミドルウェアをコメントアウトし、CSRFの仕組みを無効化。

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\TrustProxies::class,
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    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',
        ],
    ];

    /**
     * The application's route middleware.
  // 以下省略

-仕事