Can't verify CSRF token authenticity.

What

RailsAPIを扱っている際にログに出現しました。

Solution

ただ無効化する方法

Qiita等でよくあるやり方は、CSRFを無効化する方法です。
Railsのヘルパーを使っている場合は、トークンが発行されますが、コンポーネント化するために、生HTMLを使用すると、トークンが発行されず、上記の警告が出ます。
そのため、APIを使用しているコントローラーにて、CSRFを無効化すれば、解決するという発想です。

- protect_from_forgery
+ skip_before_action :verify_authenticity_token

[参考]
https://qiita.com/nishina555/items/4ffaf5cc57a384b66230

トークンを発行する方法

CSRFを無効化すると、何のためにトークンを付けてるのかなとなります。
axiosを使っているならば、任意のメソッドに以下を追記すれば、トークンを発行するため、上記エラーも解決します。

createPost: function(){
  axios.defaults.headers.common = {
    'X-Requested-With': 'XMLHttpRequest',
    'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
  };
 ...
  axios.post(...){ 
  ...
}