RailsアプリでTwitter認証実装中にルーティングエラーになった時の解決法
色々な記事を見ながらRailsアプリにomniauth-twitterを使用してTwitter認証を実装していたのですが、どういうわけかかなりハマりました。
最終的にうまく行ったのでその方法を備忘録がてら記載しておきます。
前提
諸々のバージョン
使用しているPC: MacBook Air (M1, 2020)
Railsバージョン: 6.1.4.1
Rubyバージョン: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin20]
omniauthバージョン: 2.0.4
deviseは使用していません。
最終的に参考にした記事
ハマったこと
omniauth-twitterを使用して認証を実装後、/auth/twitterにアクセスするとルーティングエラーになる
原因
(おそらく)omniauthバージョンが2以上なのにそれ用の対策をしていなかったこと
最終的にこうしたらローカルでもうまくいった
基本的な部分は参考の1番目の記事の通りに実装していますので省略します。
そこに以下を追加で実装しました。(詳細は参考の二番目の記事をご参照ください)
1.Gemfileにomniauth-rails_csrf_protectionを追加する
gem 'omniauth-rails_csrf_protection'
gem 'omniauth-twitter'
2./auth/twitterにはPOSTでアクセスする
<%= link_to '/auth/twitter', method: :post do %>認証<% end %>
おかしな点ありましたらコメント等で指摘いただけると幸いです。
Author And Source
この問題について(RailsアプリでTwitter認証実装中にルーティングエラーになった時の解決法), 我々は、より多くの情報をここで見つけました https://qiita.com/kairiver/items/9bda214e9ece01f1761a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .