Google 認証アクセス トークンを確認するにはどうすればよいですか?
何らかの方法で Google にクエリを実行し、「[与えられたアクセス トークン] は [example@example.com] Google アカウントに対して有効ですか?」と尋ねる必要があります。
短縮版
Google Authentication Api :: OAuth Authentication for Web Applicationsを通じて提供されるアクセス トークンを使用して、さまざまな Google サービスからデータをリクエストする方法は明らかです。特定のアクセス トークンが特定の Google アカウントに対して有効かどうかを確認する方法が明確ではありません。方法を知りたいです。
ロングバージョン
トークンベースの認証を使用する API を開発しています。有効なユーザー名とパスワードが提供されるか、 N 個の検証可能なサービスのいずれかからサードパーティのトークンが提供されると、トークンが返されます。
サードパーティ サービスの 1 つが Google であり、ユーザーは Google アカウントを使用して私のサービスに対して認証を行うことができます。これは、後で Yahoo アカウント、信頼できる OpenID プロバイダーなどを含むように拡張されます。
Google ベースのアクセスの概略例:
「API」エンティティは私の完全な管理下にあります。「パブリック インターフェイス」エンティティは、Web ベースまたはデスクトップ ベースのアプリです。一部の公開インターフェースは私の管理下にあり、他のものは制御できず、まだ私が知ることさえないものもあります。
したがって、ステップ 3 で API に提供されたトークンを信頼できません。これは、対応する Google アカウントのメール アドレスと共に提供されます。
どうにかして Google にクエリを実行し、「このアクセス トークンは example@example.com に対して有効ですか? 」と尋ねる必要があります。
この場合、example@example.com は Google アカウントの一意の識別子であり、ユーザーが Google アカウントにログインするために使用するメール アドレスです。これを Gmail アドレスと見なすことはできません。Gmail アカウントを持っていなくても Google アカウントを持つことができます。
Google のドキュメントには、アクセス トークンを使用して、さまざまな Google サービスからデータを取得する方法が明確に記載されています。そもそも、特定のアクセストークンが有効かどうかを確認する方法については何も述べていないようです。
更新 トークンは N 個の Google サービスに対して有効です。特定のユーザーが実際に使用しているすべての Google のサービスのサブセットがわからないため、検証の手段として Google サービスに対してトークンを試すことはできません。
さらに、Google 認証アクセス トークンを使用して Google サービスにアクセスすることは決してありません。単に、想定される Google ユーザーが実際に本人であることを確認する手段としてだけです。これを行う別の方法があれば、喜んで試します。