3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

rails7でomniauthで認証しようとしたらエラーばっかりでうまくいかなかった

Posted at

最終的にはちゃんとできました。

他の言語にうつつを抜かしている間にRubyは3出てるし、railsは7系出てるしでまさに青天の霹靂。
ホスティングする環境によって最近使ってるdotnetをあまり使いたくなかったので、久々にrails触った。

やりたいこと

ユーザー認証まわりはCognitoにおまかせして、さっと作りたかった。

参考にさせていただきました

こちら
https://qiita.com/yhirano55/items/272125c3ce3d7873002e
ありがとうございます。

ですが動かない

最初は「OmniAuth::AuthenticityError Forbidden」が出る

スクリーンショット 2022-07-07 22.02.22.png
これですね。
これは
gem 'omniauth-rails_csrf_protection'
を追加したら回避できます。(というかしないといけない?)

次は「ActionController::InvalidAuthenticityToken ActionController::InvalidAuthenticityToken」と出る

ここが一番はまった。
CSRFのトークンの検証とかもろもろOFFにしたりとかいろいろやった。(rails5時代の知識だけど)
でもダメ
スクリーンショット 2022-07-07 22.08.22.png

rails6で作り直したりしてもだめ。
新しいプロジェクトを作ってちょっとずつコード実装していくとようやく原因がわかった。

config/initializers/session_store.rb

Rails.application.config.session_store :cache_store
この部分が原因だった。
(なお、そのままセッションをCookie保存だったらCookieのサイズオーバーのエラーが出る)

キャッシュ周りの設定を反映しないといけなかった
bin/rails dev:cache
を実行する。

やっぱり2メジャーバージョンも離れると勝手が違うね

最新のものを使うと情報が少ない、枯れたバージョンだとすぐにEOLになるし大変。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?