26

Social Auth for Javalocalhost:8080を使用して、自分のコンピューター (で) で実行しているおもちゃのアプリで Google OAuth 2 認証を機能させようとしています。

ただし、アプリが Google に接続してユーザーを認証すると、Google は次のエラー ページで応答します。

ここに画像の説明を入力

「My Hobby App」という名前の私のアプリは、開発者コンソールで次のように構成されています。

ここに画像の説明を入力

Google OAuth 2 ドキュメントでは、次のように指定されています。

redirect_uri: 開発者コンソールでこのプロジェクトに対してリストされている redirect_uri 値の 1 つ。

応答の送信先を決定します。このパラメータの値は、Google Developers Console でこのプロジェクト用にリストされている値の 1 つと正確に一致する必要があります (http または https スキーム、大文字と小文字、および末尾の「/」を含む)。

いくつか質問があります。

  • redirect_uriアプリに複数の を追加するにはどうすればよいですか?
  • Google が私のアプリを「My Hobby App」ではなく「Project Default Service Account」と認識しているのはなぜですか?
4

2 に答える 2

35

残念ながら、それを理解するのに数時間かかりました。

アプリに複数の redirect_uris を追加するにはどうすればよいですか?

通常、Google などの何かに複数のリンクを追加する場合は、または で区切ります,;、リダイレクト URI では新しい行を使用する必要があり、実際にはあまり直感的ではありません。したがって、Edit Settingsボタンを押すと、改行 ( ) で区切られたリンクがさらにいくつかある場合は、URI および/またはオリジンに追加できますenter

複雑なアプリ構成や新しいキーは必要ありません。

画像

Google が私のアプリを「My Hobby App」ではなく「Project Default Service Account」と認識しているのはなぜですか?

PRODUCT NAME2 番目の質問について: 、HOMEPAGE、などのアプリ情報を変更するには、[同意画面] タブに移動する必要がありますLOGO

于 2014-06-17T19:07:54.137 に答える
6

この回答は質問に対する正確な回答ではないかもしれませんが、Google OAuth を初めて使用し、複数の URI が認識されない理由を知りたい人には役立つと思います。

コード内の 2 か所でリダイレクト URI を使用します。1 回目は認証コードをフェッチするとき、2 回目はこのコードをアクセス トークンと交換するときです。

Google docsでは、認証コード リクエスト (最初のリクエスト) に対する応答がリダイレクト URI に送信されることが明確に記載されています。したがって、エンドポイント A からリクエストを行い、rediredt URI をエンドポイント B として指定すると、Google は認証コードをエンドポイント B に送信します。これは明らかで、エラーなく正常に動作しました。

2 番目の要求に関して言えば、ドキュメントはややあいまいです。redirect_URI パラメータは次のように記述されています。

redirect_uri: リダイレクト URI の設定で説明されているように、API コンソールで指定する URI。

ここで、これがどのように機能するかを理解するのを間違えました。最初の呼び出しと同様のアプローチに従って、3 番目のエンドポイント C を使用し、2 番目の呼び出しを行うときに、このエンドポイント C を redirect_URI パラメーターに渡しました。API コンソールでエンドポイント B と C が指定されていますが、URI 不一致エラーが発生しました。

問題は、最初の呼び出しの場合とは異なり、2 番目の呼び出しに対する応答が、要求が行われた場所と同じエンドポイントに到達することです。以下のようにPythonでリクエストを行いました:

r = requests.post(token_endpoint, params)

rトークン付きの応答があります。

両方の呼び出しで同じ redirect_URI を使用することになっているため、URI の不一致が発生していました。

したがって、単一の OAuth リクエストに対して、単一の redirect_URI を使用する必要があります。

しかし、ここで疑問が生じます。単一のアプリに対して API コンソールで複数の redirect_URI が許可されているのはなぜですか。同じアプリで authCode-token 呼び出しの複数のペアを作成する必要がある場合は、複数の redirect_URI を使用する余裕があると想定しています。

于 2016-10-17T16:59:03.333 に答える