執筆背景
先日、個人アプリ(フレームワークにはRuby On Railsを使用)をリモートリポジトリーにプッシュした際GitHubからgem "OmniAuth"の脆弱性について指摘された。
詳細 → https://github.com/omniauth/omniauth/pull/809
そのため、それに対応するgem "omniauth-rails_csrf_protection"をインストールした。
Gemfile
gem 'OmniAuth' #削除
gem 'omniauth-rails_csrf_protection' #追加
$bundle install
ローカル上でアプリを再起動すると以下のようなエラーが発生したため、対処方法を示す。
対処方法
SNS認証ログインのlink_toタグの後ろにmethod: :postを追記する。
_links.html.erb
<%= link_to (omniauth_authorize_path(resource_name, provider)), method: :post do %>
SNS認証ログイン
<% end %>
link_toタグは、ログイン機能にgem deviseを使用している場合、app/views/devise/shared/_links.html.erbの中にあります。