7

Google の OAuth2 クライアントの例はこちら

私は OAuth2 にまったく慣れていないので、OAuth2 をアプリケーションに統合する前に、この例を機能させたいと考えています。私がやったことは次のとおりです。

  1. テスト アプリケーションを登録する
  2. クライアント ID とクライアント シークレットを取得する
  3. これらの値を client_secrets.json に構成します
  4. テスト アプリを実行します。python moderator.py

アプリケーションはブラウザーを開き、(ユーザーとして) アプリケーションが自分のアカウントにアクセスすることを承認できます。しかし、Google は次のように不平を言っています (400 Bad Request):

Error: redirect_uri_mismatch
The redirect URI in the request: http://localhost:8080/ did not match a registered redirect URI
Learn more
Request Details
from_login=1
scope=https://www.googleapis.com/auth/moderator
response_type=code
access_type=offline
redirect_uri=http://localhost:8080/
approval_prompt=auto
as=-xxxxxxxxxxxxx
pli=1
client_id=xxxxxxxxxxx.apps.googleusercontent.com
authuser=0
hl=en

localhost:8080 は、moderator.py によって開始された内部 Web サーバーから来ていると思います。私の質問は次のとおりです。誰かがこの例を機能させましたか? 他に必要なコンポーネント (Apache 構成、DNS など)

私は OAuth2 と非常に混同しており、どんな助けも大歓迎です。

4

4 に答える 4

0

デフォルトの(説明方法がわからない)flagsパラメーターをrun_flow(flow、storage、flags)に渡すため、redirect_uriは「http://localhost:8080/ 」に設定されています

run_flow() 関数の定義を見ると、次のことがわかります。

It presumes it is run from a command-line application and supports the
following flags:

    ``--auth_host_name`` (string, default: ``localhost``)
       Host name to use when running a local web server to handle
       redirects during OAuth authorization.

    ``--auth_host_port`` (integer, default: ``[8080, 8090]``)
       Port to use when running a local web server to handle redirects
       during OAuth authorization. Repeat this option to specify a list
       of values.

    ``--[no]auth_local_webserver`` (boolean, default: ``True``)
       Run a local web server to handle redirects during OAuth
       authorization.
于 2015-12-18T18:25:29.330 に答える
0

OAuth 2.0 では、通常、redirect_uri パラメーターはプロバイダーに登録されます。プロバイダーは、https のみの redirect_uri も強制する必要があります。

こちらで、redirect_uri を Google に登録する必要があります: https://code.google.com/apis/console/?pli=1#access

于 2012-07-12T15:31:10.147 に答える
0

外部 IP を Google に登録してみてはいかがでしょうか (ルーターでポート フォワーディングが必要になる場合があります)。これが失敗した場合は、Python の SimpleServer を使用して IP を登録し、このサーバーにリダイレクトを処理させることができます。

于 2014-03-06T03:56:36.750 に答える