2016.01.09この記事は約2分で読めます。rails4でomniauth-google-oauth2を使ってソーシャルログイン機能を実装していたところ、以下のエラーでコールバック処理が実行されない。"redirect_uri_mismatch"}この時の設定内容は以下のとおり。他のプロバイダのログインも一緒に試していたので、google以外のものも含まれている。Consoleでの設定は以下のとおりで、redirect_uriは一致している。Consoleに登録しているものと異なっていることが起因しているようだった。この時のrequest_uriはというと以下のようになっている。http://localhost:3000/auth/google/callback?state=a72ba65179bf12b10f34848eae9437ff59a4fbc1a9ebf12b&amp;code=4/eMToVraxQlPFriO-FAQCab7cZyO2asVBe80__RA_vfU1http://localhost:3000/auth/google/callback?state=a72ba65179bf12b10f34848eae9437ff59a4fbc1a9ebf12b&amp;code=4/eMToVraxQlPFriO-FAQCab7cZyO2asVBe80__RA_vfU色々と調べていたところ、以下のissuesに同じような報告があった。github.comどうやらgoogleの場合は、request_uriにこれらのクエリがあると上手くいかないようだ。このrequest_uiを生成しているのは以下の箇所っぽい。query_stringがある場合に上手くいかない。query_stringend上のissueでは、クエリrequest_uriの値をomniauthのsetup_phaseでsetupオプションを使って書き換えているようだった。issueのworkaroundを参考に以下のように書いてみたところ上手くいった。auth["omniauth_provider_secret"]endendendちなみに僕の環境は以下のとおり。コピーbyebyehaikikyouをフォローするbyebyehaikikyouDEBUGLIFE関連記事railsRailsのルーティングを理解するrailsのルーティング周りについて、自分自身がルーティング設定をする時に迷わないようにするため、また内部でどのような処理がされているのかをイメージしながら設定を書けるようになるため、調べた内容をまとめてみる。コメントをキャンセルメールアドレスが公開されることはありません。»タイトルとURLをコピーしました。