LoginSignup
2
2

More than 1 year has passed since last update.

ECS上に構築したreact+laravel環境でCSRF token mismatch。

Posted at

laravelからCSRF token mismatchを解決せよ

原因1

ECSはEC2三台構成なので、セッション情報が分散するから。

対策

ALBの分散設定を「sticky session」にするか、セッション情報をredisやdatabaseに入れて共有できるようにする。
今回はredisへセッション情報を保存することにした。
ただそれだけでは解決しなかった

原因2

フロントエンドのURLと、APIのURLのドメインが違うと、Laravelがセッションを認識できない。

例えばよくあるこんなURL
フロント www.example.com
バックエンド api.example.com

開発中はどっちもlocalhostだから動く、サーバーに上げた途端に動かなくなるやつ。

対策

Laravelの環境変数、SESSION_DOMAINを設定する。

デフォルトでは完全一致でないとダメらしい。
サブドメインも含めてワイルドカードにするためSESSION_DOMAIN=.example.comとした。

そしたら動いた。
ECS難しい。

2
2
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
2
2