Jak mogę zweryfikować token dostępu do uwierzytelniania Google?
Muszę w jakiś sposób zapytać Google i zapytać: Czy [dany token dostępu] jest ważny dla konta Google [example@example.com]?
Wersja skrócona :
jest jasne, w jaki sposób token dostępu dostarczany przez Google Authentication Api :: OAuth Authentication for Web Applications może być następnie używany do żądania danych z szeregu usług Google. Nie jest jasne, jak sprawdzić, czy dany token dostępu jest ważny dla danego konta Google. Chciałbym wiedzieć, jak to zrobić.
Wersja długa :
opracowuję interfejs API, który używa uwierzytelniania opartego na tokenach. Token zostanie zwrócony po podaniu prawidłowej nazwy użytkownika i hasła lub po dostarczeniu tokena strony trzeciej z jednej z N weryfikowalnych usług.
Jedną z usług innych firm będzie Google, umożliwiająca użytkownikowi uwierzytelnianie w mojej usłudze przy użyciu konta Google. Później zostanie to rozszerzone o konta Yahoo, zaufanych dostawców OpenID i tak dalej.
Schematyczny przykład dostępu przez Google:
tekst alternatywny http://webignition.net/images/figures/auth_figure002.png
Podmiot „API” jest pod moją pełną kontrolą. Podmiotem „interfejsu publicznego” jest dowolna aplikacja internetowa lub komputerowa. Niektóre interfejsy publiczne są pod moją kontrolą, inne nie, ao innych jeszcze nigdy się nie dowiem.
Dlatego nie mogę ufać tokenowi dostarczonemu do API w kroku 3. Zostanie on dostarczony wraz z odpowiednim adresem e-mail konta Google.
Muszę w jakiś sposób zapytać Google i zapytać: czy ten token dostępu jest ważny na przykład@example.com ?
W tym przypadku example@example.com jest unikatowym identyfikatorem konta Google - adresem e-mail, którego ktoś używa do logowania się na swoje konto Google. Nie można założyć, że jest to adres Gmail - ktoś może mieć konto Google bez konta Gmail.
Dokumentacja Google jasno określa, w jaki sposób za pomocą tokena dostępu można pobrać dane z szeregu usług Google. Nic nie wskazuje na to, jak można sprawdzić, czy dany token dostępu jest ważny.
Aktualizacja Token jest ważny dla N usług Google. Nie mogę wypróbować tokena w usłudze Google w celu jej weryfikacji, ponieważ nie będę wiedział, z jakiego podzbioru wszystkich usług Google faktycznie korzysta dany użytkownik.
Ponadto nigdy nie będę używał tokena dostępu uwierzytelniania Google do uzyskiwania dostępu do jakichkolwiek usług Google, a jedynie jako środek do weryfikacji, czy domniemany użytkownik Google jest tym, za kogo się podaje. Jeśli istnieje inny sposób, z przyjemnością spróbuję.