17

URL は正しいようです (最終更新は昨日):

ここに画像の説明を入力

ファイルも:

omn​​iauth.rb:

provider :google_oauth2, 'MY_CLIENT_ID.apps.googleusercontent.com', 'MY_CLIENT_SECRET',
           :scope => 'https://mail.google.com/mail/feed/atom/'

Error: redirect_uri_mismatch
The redirect URI in the request: http://localhost:3000/auth/google_oauth2/callback did not match a registered redirect URI

header.html.erb

<li><%= link_to "Sign in with Google", "auth/google_oauth2" %></li>

ルート.rb:

match '/auth/:provider/callback', to: 'sessions#omniauth_create'

しかし、私はこれを得ています:

> Error: redirect_uri_mismatch The redirect URI in the request:
> http://localhost:3000/auth/google_oauth2/callback did not match a
> registered redirect URI

(Twitter と Facebook OmniAuth は完全に機能しています)

何が問題なのかわからない。これを修正するための使用方法はありますか?

編集

URI をhttp...に変更しました。

ここに画像の説明を入力

しかし、それでも同じエラーが発生します。

4

5 に答える 5

22

リクエストがヒットしているように見えhttp://localhost:3000/auth/google_oauth2/callbackますが、同様のパターンに一致する指定されたリダイレクト URI は ですhttps。リダイレクトのリストに追加http://localhost:3000/auth/google_oauth2/callbackすると、その問題が解決する可能性があります。

編集:/別の潜在的な修正は、対応するリダイレクト URI に末尾を含めることです。これは、この場合に機能するように見えました。

于 2012-11-03T00:50:57.627 に答える
4

omniauth-oauth2gem バージョンに比較的新しい問題があり1.4 ます https://github.com/intridea/omniauth-oauth2/issues/81#issuecomment-151038559

一時的な修正は、その gem を明示的にダウングレードすることです。Gemfile

gem 'omniauth-oauth2', '~> 1.3.1'
于 2015-10-29T16:05:37.937 に答える
0

私にとってうまくいった非常に単純なコピーアンドペーストソリューションを共有します。

コードで指定していたものをredirectUriieとしてコピーし、承認済みのリダイレクト URIを要求するGoogle 設定内に"redirect_uri": "http://127.0.0.1:3001/"貼り付けましvalueた。このようにして、両方のパラメーターが同じであることを確認します。key

urlが計算された場合は、console.log()それをコンソール ウィンドウからコピーしてから、Google の設定に貼り付けます。

于 2015-09-07T03:55:53.630 に答える
0

上記のすべてを試しましたが、うまくいきませんでした。最後に、エラー メッセージで、コールバックが少し異なっていることに気付きました。localhost:3000 と auth の間にユーザーがいました。理由はよくわかりません。

http://localhost:3000/users/auth/google_oauth2/callback

それを変更し、30分待ったところ、うまくいきました。

于 2016-02-16T02:16:48.617 に答える
0

ここに画像の説明を入力

ふー

vi config/initializers/omniauth.rb OmniAuth.config.full_host = 'https://localhost:3000' Rails.application.config.middleware.use OmniAuth::Builder do provider :google_oauth2, 'google_client_id', 'google_client_secret' end

于 2014-04-14T06:09:22.600 に答える