【備忘録】【Rails6】POST処理で「ActionController::InvalidAuthenticityToken」エラーの解消

  • URLをコピーしました!

★環境
 Rails:6.1.4.1

目次

エラー経緯:「link_to」のPOSTでエラー発生

「Rails6」で「link_to」を使ってPOST処理しました。

<%= link_to("ログアウト", "/blog/user/logout", {method: "post", class: "nav-link"}) %>

するとPOSTしたページで以下のエラーが発生しました。

ActionController::InvalidAuthenticityToken in UsersController#logout
ActionController::InvalidAuthenticityToken
Extracted source (around line #211):
209
210
211
212
213
214


def handle_unverified_request
raise ActionController::InvalidAuthenticityToken
end
end
end

Rails6でPOSTしたらエラー発生

エラー解消:CSRFのトークンを出力

Railsなどのウェブフレームワークは、CSRF(クロスサイトリクエストフォージェリ)対策がされています。

よってPOST処理するには、CSRF対策をオフにするか、CSRFトークンを発行してそちらを利用する必要があります。

対策をオフにする必要はないので、トークンを発行しました。

post元のviewに、以下のタグを埋め込むだけでOKです

<%= csrf_meta_tags %>
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次