Yak shaving logs


My life is just yak shaving.

[Rails5] POSTするとActionController::InvalidAuthenticityTokenになる

2018/01/22 #rails #nginx #puma

By Yusuke Takita


こんにちは。Kajitz inc.の瀧田です。

Rails5 を EC2で動かしているのですが、SSL化したタイミングでActionController::InvalidAuthenticityTokenでPOSTできなくなってしまったときの対応です。

W, [2018-01-22T14:40:21.374631 #5736]  WARN -- : [adb4a978-5586-46df-9441-401d0db5b1ab] HTTP Origin header (https://example.com) didn't match request.base_url (http://example.com)
I, [2018-01-22T14:40:21.374996 #5736]  INFO -- : [adb4a978-5586-46df-9441-401d0db5b1ab] Completed 422 Unprocessable Entity in 0ms (ActiveRecord: 0.0ms)
F, [2018-01-22T14:40:21.375910 #5736] FATAL -- : [adb4a978-5586-46df-9441-401d0db5b1ab]
F, [2018-01-22T14:40:21.375965 #5736] FATAL -- : [adb4a978-5586-46df-9441-401d0db5b1ab] ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

HTTP Origin header (https://example.com) didn't match request.base_url (http://example.com)

httpshttp でマッチしてないというログが怪しいということで、
nginxの設定を疑いました。

server {
  listen 443 ssl;
  server_name example.jp;

 (省略)

  location @puma {
  (省略)
    proxy_set_header X-Forwarded-Proto $scheme # 追加
  }
}

nginx -> puma にリバースプロキシした時に http になったままだったので、
上記を一行追加したら解決しました。

このエントリーをはてなブックマークに追加

categories


最新記事


tags