15

Google API (Google ドライブ) を使用する Web アプリケーションがあります。アプリケーションは多くのクライアントによって使用され、すべてのクライアントはシステムにアクセスするためのサブドメインを持っています。

したがって、ドメインはappdomain.com です

ユーザーには、 foo.appdomain.combar.appdomain.cometc.appdomain.comがあります。

しかし、Google コンソールのリダイレクト URI では、リダイレクト URL を手動で入力する必要があります。ワイルドカードを使用してリダイレクトして、Google が *.appdomain.com のようなサブドメインを受け入れるようにする方法はありますか?

これにより、redirect_uri のユーザー サブドメインを使用して Google 認証呼び出しを行うことができます。

https://accounts.google.com/o/oauth2/auth?redirect_uri=http://foo.appdomain.com
4

3 に答える 3

17

ワイルドカード マッチングのサブドメインは、Google OAuth ではサポートされていません。state パラメータを使用して、そこにユーザー固有の情報を含めることができます。このパラメーターは、応答で返されます。状態の詳細については、こちらをご覧ください。

于 2012-12-07T18:48:37.363 に答える
8

マスター サブドメインを作成して、すべての Google 認証応答を取得し、「state」クエリ パラメータを使用して正しいサブドメインにリダイレクトできます。

たとえば、google.mydomain.com を作成し、それを有効な「リダイレクト URI」として使用すると、Apache はリダイレクト (または書き換え) 機能を使用してこの URL を各ユーザーにリダイレクトできます。

Apache リダイレクトの詳細については、http: //www.simonecarletti.com/blog/2009/01/apache-query-string-redirects/ を参照してください。

ここで私が使用しているコード:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^google\.
RewriteCond %{QUERY_STRING} state=([a-z0-9]+)
RewriteRule ^(.*)$ http://%1.mydomain.com/$1 [L]
于 2013-10-12T18:01:33.807 に答える