2
2

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 5 years have passed since last update.

omuniauthのGoogle認証でめちゃくちゃ詰まった話。無事解決できたよ!!!

Posted at

どうも!!!
チャンクノです!!!

今回はomuniauthのGoogle認証でめちゃくちゃ詰まった話について書きますよー。
自分は今やっているチーム開発でFacebookとGoogle認証を用いた新規登録とログイン機能を実装しています。
Facebookはちょっとつまりつつもなんとかできました。
で、これは調べてもらえればわかるんですけど認証機能を実装するためのコードってFacebookもGoogleも共通のコードを使うんですよね。すなわちFacebookができたならgoogleもできるはずなんです。
しかし!!!
Googleがなぜかできない、、、
認証はできているのだがDBに保存されず必死にググり続け、その後メンターさんに聞いたところ
「ターミナルを見てみましょう」とのお声がありました。
実際にみてみると

 ERROR -- omniauth: (google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected

こんなエラーが書いてありました。
結論から言うとこのエラーの内容はよくわかんないです。
ただ回避策がありました。
google認証にはgem 'omniauth-google-oauth2'というgemを使います。
まずはこれのバージョンをさげてbundle installします。自分は0.5.4でできました!!!
次にconfig/initializerの中にomniauth.rbファイルを作成
omniauth.rbの中に

Rails.application.config.middleware.use OmniAuth::Builder do
{:provider_ignores_state => true}
end

を記述する。
以上です。
これでできるはずです。

一日この機能に費やして途中は本当に心が折れそうでした、、、。(なんなら折れてた)
でもコードがちゃんと動いてDBに保存された時はめちゃくちゃ嬉しかったです!!!
ぶっちゃけ少し泣きそうになりました。
大切なのはターミナルもみることですね。
いい経験になりました。
これからもエラーとの戦いを頑張って制していきます💪
それでは皆様の良きプログラミングライフを祈って🙏🙏🙏

Facebook,Google認証機能実装の参考記事
https://mchinta.hatenablog.com/entry/2019/01/04/115312
https://qiita.com/hidepino/items/a1eb9d2f32ce33389f20

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?