2012-02-21 1 views
4

oauthを使用して、Googleが提供するさまざまなサービスにアクセスしています。サービスごとにトークンを生成できます。しかし、Googleから複数のサービスを使用するために単一のトークンを生成する必要があります。 誰も私にこの解決策を教えてもらえますか?グーグルのOAuth2のドキュメントを1としてGoogleからの複数のサービスにアクセスするための単一のoauthトークンと秘密

答えて

5

https://developers.google.com/accounts/docs/OAuth2

、幸せな経験はありませんが、複数のスコープを設定することにより、これを行うことは可能ですが、警告されます。

リクエストするときは、scopeパラメータを複数のスコープに設定します。それぞれのスコープは単一のスペースで区切ります。

例: "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.google.com/m8/feeds"

あなたは現在、ここでスコープのリストを見つけることができます:あなたは、GoogleプロフィールのAPIのためのアクセストークンをお願いし、後で上の同じアプリケーションとして、Googleの連絡先のAPIのためのアクセストークンを求める場合https://developers.google.com/gdata/faq

は残念ながら、APIへのアクセスは、添加剤、の意味ではありません2つのアクセストークンで終了し、どちらも他のAPIにアクセスすることはできません。 Facebookは少なくともこれまで許可されたすべてのアクセス権にアクセス権を与える単一のアクセストークンを返すことができます。

これにより、複数のアクセストークン(恐ろしい悪夢、期限が非常に早い場合)を追跡したり、ユーザーエクスペリエンスの惨事であるすべてのアクセス権を事前に尋ねたりする必要があります。

Google APIは、断片化した異種の統合を徹底したい場合、現在は機能していません。

+1

これは遅れている可能性がありますが、複数のスコープの問題のいくつかを明確にすることができますか?私は日常的に複数のスコープを使用しており、問題は見つかりませんでした。 問題は純粋にスコープの付与についてのもので、追加的ではないのですか? https://www.googleapis.com/oauth2/v1/tokeninfoにいつでもpingを送信して、トークンのスコープを確認してから新しいスコープを追加することができます。十分な簡単な回避策。ただし、一般的には、すべてのスコープを事前に要求するのが最も簡単で簡単です。そのため、エンドユーザーにとっては開発者とクリーナーとして簡単です。 –

+0

「1つのサイズに合った」トークンを避けてください。ユーザーがプロセスを理解し、アクセス要求を承認する可能性を高めるために推奨されるベストプラクティスは、アクセスが必要なときに可能な限り最小限のスコープを使用することです。したがって、arunとは対照的に、付与が行われる各時点で個別のトークンを使用する必要があります。私の経験では、これは管理するための「悪夢」をもたらさなかった。どの状況で使用するかを知るために、ユーザーとapiスコープでキーを付けたリフレッシュトークンを保存する必要があります。ライブラリはアクセストークンを取得する必要があります。 –

+0

これをFacebookのAPIと比較すると、後で追加のスコープをリクエストできるようになり、時間の経過とともにユーザーが付与したスコープ全体を許可する単一のトークンを返すことができます。複数のトークンが優れている"one size all tits all"というトークンが悪いことはテキストからはっきりしていることを願っていますが、後で複数のトークンを処理しなければならないという罰則を受けるべきではありません。それはあなたのための悪夢ではありませんでした喜んで;おそらく私は "YMMV"を追加する必要があります:) – majelbstoat

関連する問題