0

現在のプロジェクトでは、Cloud Endpoints と Cloud Storage API を同時に使用したいと考えています。

クラウド エンドポイントを認証する場合、Google の三目並べアプリの例では、access_token を次のように id_token に設定する必要があると述べています ( github リポジトリを参照)。

var token = gapi.auth.getToken();
// Use id_token instead of bearer token
token.access_token = token.id_token;

ただし、access_token が id_token に設定されると、他の Google API を使用できなくなります。私の場合、Cloud Storage API です。これは、アクセス トークンが無効になっているためです。たとえば、クラウド ストレージ API はInvalid credential を返します。access_token が id_token に設定される前は、access_token は次のようになりますya29.AHES6ZTjklghkljghlkjfghkljsrdölizuklhlfghI_UTfghdfghCg。非常に長いため、ここに投稿したくない id_token に置き換えられます。

私が考えることができる2つの解決策は次のとおりです。

  • それぞれ個別の認証オブジェクトとトークンを使用して、gapi オブジェクトをコピーします。クラウド エンドポイントには id_token を使用し、残りにはもう 1 つを使用します (ただし、これを可能にする方法でオブジェクトをコピーすることはできませんでした)。
  • どこかで認証トークンを覚えておいて、呼び出すAPI(クラウドエンドポイント/他のAPI)に応じて置き換えます(これにはおそらく同期が必要で、やや面倒です)

この問題の解決策と実行可能な回避策に非常に興味があります。

この問題が発生した場合は、以下の回答と私のコメントをお読みください。これを完了すると、この質問が実際にはこの質問よりも多いことが理解できます: How do I test Cloud Endpoints with Oauth on devserver

誰かが内部の用語を検索する場合に備えて、ここに質問を残しておきます。

4

1 に答える 1

1

Python Tic Tac Toe サンプルは更新が必要なようです。この特定のケースでは、ID トークンは不要になりました。( Java の例では Google+ ログインを使用しているため、要件が少し異なります。)

トークンの操作を省略すると、エンドポイントや呼び出している他の Google API に対して自動的に機能します。これがどのように見えるかについては、 Python の「Hello Endpoints」の例を参照してください(含まれていないものが最も注目されます)。

于 2013-10-23T23:39:38.567 に答える