[localhost:8080]を使用してGoogle Drive APIで開発を行っていました。突然、ローカル展開サンドボックスでテストし、IPアドレスが[192.168.1.1:8080]であると感じました。それに応じて、開発者コンソールクライアントのコールバックURLの資格情報を変更しました。 OAuth2WebServerFlowを使用して、ユーザーの同意を使用して更新トークンを取得しています。その後、将来、ユーザーの認証にリフレッシュトークンとOAuth2WebServerFlowを使用します。しかし、私は驚きました-私はエラーを受け取りました:
何が起こっているのか、どうすれば修正できるのかわかりません。何が起こっているのか分からない
hosts
ファイルを編集する代わりに、「マジックDNS」サービスを使用することもできます http://xip.io/ または http://nip.io/ (編集を参照)
xip.ioは、任意のIPアドレスにワイルドカードDNSを提供するマジックドメイン名です。LANのIPアドレスは10.0.0.1とします。 xip.ioを使用して、
10.0.0.1.xip.io resolves to 10.0.0.1 www.10.0.0.1.xip.io resolves to 10.0.0.1 mysite.10.0.0.1.xip.io resolves to 10.0.0.1 foo.bar.10.0.0.1.xip.io resolves to 10.0.0.1
このサービスを使用すると、プライベートアドレスに解決されるパブリックに見えるドメインを指定できます。
コンソールで、リダイレクトURIが(とにかく欲しいものだった場合):
http://192.168.1.1:8080/auth/google_oath2/callback
次のものに置き換えます:
http://192.168.1.1.xip.io:8080/auth/google_oath2/callback
「リダイレクトURI」はワイルドカードを受け入れないように見えるため、コンソールでプライベートip-xip.io全体を指定する必要があります。
xip.ioと提携していない。私はただ満足したユーザーです。
2016編集:DNSサーバーxip.ioの不安定性に関する報告を聞いたことがあります。 copy-catサービスnip.ioがありますが、これはxip.ioとまったく同じように動作しますが、2016年7月中にnip.ioの応答率は100%でしたが、xip.ioにはありませんでした。
Googleは、Oauth呼び出しを行うときにローカル(プライベート)IPアドレスを受け入れません。私の回避策は、ローカルIPのWindowsホストファイルにエントリを追加することでした。
\Windows\System32\drivers\etc
192.168.1.2 fakedomain.com
その後、fakedomain.com
開発コンソールでGoogleを使用します。それらは「本当の」ドメインとして表示されますが、ブラウザでは引き続きローカルIPに解決されます。 MacまたはLinuxでも同様のアプローチが機能すると確信しています。
編集:ローカルで開発する場合にのみ関連します。
OK、Macでも同じ問題が発生しています。次の手順で問題を解決しました
Google開発コンソールに移動します https://console.developers.google.com/project 、資格情報を選択し、コールバックIPを http://myflask.comのようなドメインに変更します。 5000/oauth2callback 。私の場合、Flaskアプリケーションを使用しているため、5000ポートが必要です。
次に、上記のホスト名とIPに一致する新しいエントリをprivate/etc/hosts
ファイルに次のように追加します。
# (example IP)
172.1.1.1 myflask.com
Googleに資格情報を更新する時間を与えて、 http://myflask.com:50 のサイトにアクセスします
IPアドレスからドメイン名(私の場合は192.168.1.113からlocalhost)に変更するまで同じエラーが発生したため、GoogleはベアIPアドレスを受け入れないようです。
サンドボックスにドメイン名を使用するか、ローカルドメインサーバーがない場合はセットアップします。
Macでrootとして編集することで同じことができることに注意してください。
/private/etc/hosts
上記と同様の行を追加します
192.168.60.10 fakedomain.com
\ Windows\System32\drivers\etc\hostsでファイルホストを変更します
hostsファイルに「192.168.1.2 fakedomain.com」を追加します
ウィンドウを再起動します
Googleコンソール192.168.1.2アップデートをfakedomain.comにアップデート