0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel11】419 PAGE EXPIREDとのたたかい(CSRFトークン)

Posted at

問題

Postman を使ってアップロード機能を試そうと思ったが...
419 エラーが出て動かせなかった... :sob:

image.png

解決方法

Laravel の 419 エラーは CSRFトークン が原因のことが多い。
最近は自動的にトークンが埋め込まれるので、存在をすっかり忘れていた...

web.php にルートを記載したため、まさにこれが原因。

image.png

フロントエンドから利用するときは特に問題にならない。
そのため、CSRFトークンを一時的に無効にすることにする。

bootstrap/app.php の middleware にメソッドが用意されている。
ここに、無効にするURLを書き込む。
* を利用しても良い。

bootstrap/app.php
  return Application::configure(basePath: dirname(__DIR__))
      ->withMiddleware(function (Middleware $middleware) {
            // ...
          
+           $middleware->validateCsrfTokens(except: [
+               'file/*',
+           ]);
      })
      ->withExceptions(function (Exceptions $exceptions) {
          //
      })->create();

解決!

image.png

おわりに

Lara11 になってから、Middleware が隠匿されたおかげで、設定変えようとしてもどこに書いていいか分からない...
新規には分かりやすくなったかもだけど、隠し機能みたいになってる。

参考:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?