46

RailsアプリにGoogleOauth2を追加していますが、初期段階を通過できませんでした。

アプリをセットアップし、クライアントIDとシークレットを定義しましたが、取得していますInvalid parameter value for redirect_uri: Non-public domains not allowed: http://localhost/path/to/callback

これは何を意味するのでしょうか?これは、ローカルの開発環境でテストしているためですか?

アイデアをありがとう。

編集

これは、アプリのURIが送信URIと異なることが原因である可能性があります。しかし、Googleにアクセスして、開発アプリへのパスを承認しようとすると、が表示されますOAuth2 redirect is invalid。これは、ローカルでホストされているアプリを使用する際の制限ですか?

編集2

私が生成しているリクエストは次のようになります。

https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=###########&redirect_uri=http%3A%2F%2Fmyapp.dev%2Fusers%2Fauth%2Fgoogle_oauth2%2Fcallback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&approval_prompt=&access_type=offline

これは正しいです。.apps.googleusercontent.comセクションを含めたり除外したりするclient_idでこれを試しました。どちらも機能していないようです。

4

7 に答える 7

69

Ubuntuで実行しているPython/トルネードアプリのリダイレクトエラーが発生していました。受け入れられた回答が強調表示されているため、ローカルホストの使用は機能しませんでした。Googleはパブリックドメインを望んでいます。

私の解決策は、パブリックである「example.com」をピギーバックし、/ etc/hostsファイルにサブドメインを作成することでした。サブドメインは私のローカル開発ボックスで機能し、グーグルはexample.comドメインに満足します。グーグルコンソールを介してリダイレクトを登録しましたが、リダイレクトは正常に機能しました。

/ etc/hostsに以下を追加しました。

192.168.33.100   devbox  devbox.example.com

私の場合、IPは私のマシンのIPでした。代わりに127.0.0.1を使用することもできます。

新しいクライアントID用に設定されたGoogleAPIコンソール(https://code.google.com/apis/console )は次のとおりです。

于 2012-08-17T10:58:03.937 に答える
18

xip.ioを使用すると、http://your_pow_app.192.168.0.1.xip.io/user/auth/google_oauth2/callbackのようにリダイレクトするパブリックURLを提供できます

テストされ、動作しています。

于 2013-11-05T15:17:09.473 に答える
5

パブリックホスト名を使用しました。静的IPアドレスがある場合に役立ちます。http://www.displaymyhostname.com/を使用してホスト名を取得しました。新しいWebアプリケーションクライアントIDを作成したときに、それを[承認されたJavaScriptオリジン]フィールドに直接接続しました。

PS私のホスト名は次のようになりました:111.111.111.111.static.exetel.com.au

これは関連する質問への私の答えですhttps://stackoverflow.com/a/23517146/1320083

于 2014-05-07T12:00:22.063 に答える
2

これを見つけた他の人にとって、私の問題はいくつかの組み合わせでした。

  1. ローカルマシンで動作するコールバックを取得できませんでした。コンソールAPIコンソールはそれが可能であることを示唆していますが、私はそれを機能させることができませんでした。これがサービスにあるのか、私のネットワーク/接続/ファイアウォールなどにあるのかわからない。

  2. APIコンソールでは、アプリに戻るルートURLだけでなく、完全なリダイレクトURIを指定する必要があります。

  3. Googleは、スコープパラメータをhttps://developers.google.com/gdata/faq#AuthScopesにリストしています。この情報は古くなっているようです。これらの正しい形式は現在https://www.googleapis.com/auth/plus.me、https://www.googleapis.com/auth/youtubeなどです。おそらく他の誰かこれを確認できますか?

他にもいくつかのことが起こっていました。私はここSOで私の質問のもう1つについて完全な説明を書きました。残念ながら、間違った場所に投稿したため、コメントはモデレーターによって移動されるのではなく削除されました。今は自分が書いたものをすべて思い出せません。同様の問題に直面している他の人のために、コメントしてください、それは私の記憶を揺さぶる可能性があるので、私はいくつかのアイデアを提供することができます。

于 2012-05-18T07:37:08.793 に答える
0

エラーredirect_uri_mismatch-このエラーは、アプリのバンドルIDと一致しない誤ったバンドルIDをGoogleDevelopersConsoleプロジェクトに入力した場合に発生する可能性があります。クライアントIDとバンドルIDが開発者コンソールに表示される値と一致することを確認してください。

于 2015-06-12T12:11:21.703 に答える
0

私にとって、それはグーグルのURLを構築した関数でした。文字列に改行を入れました。改行を削除すると、URLが再び機能しました。

于 2017-06-18T06:41:35.340 に答える
-2

私はこの問題に直面しましたが、実際には問題ではないことがわかりました。私のブログで説明されているように、ローカルホスト開発マシンで作業している場合でも、パブリックリダイレクトURIを使用できます。Googleは、認証コードをパブリックURIに返すだけで、ローカルマシンにカットアンドペーストできます。

于 2013-11-18T23:51:03.083 に答える