Как проверить токен доступа к аутентификации Google?
Мне нужно как-то запросить Google и спросить: есть ли [данный токен доступа] для учетной записи Google [[email protected]]?
Краткая версия:
Он разъясняет, как токен доступа, поставляемый через Аутентификация Google Authentication Api:: OAuth для веб-приложений, может использоваться для запроса данных из диапазона Google Сервисы. Непонятно, как проверить, действительно ли данный токен доступа действителен для данной учетной записи Google. Я хотел бы знать, как.
Длинная версия:
Я разрабатываю API, который использует аутентификацию на основе токенов. Токен будет возвращен при предоставлении действительного имени пользователя + пароля или при предоставлении стороннего токена из любой из проверенных служб N.
Одной из сторонних служб будет Google, позволяющая пользователю аутентифицироваться против моего сервиса, используя свою учетную запись Google. В дальнейшем это будет расширено, чтобы включить учетные записи Yahoo, доверенные поставщики OpenID и т.д.
Схематический пример доступа на основе Google:
alt text http://webignition.net/images/figures/auth_figure002.png
Сущность "API" находится под моим полным контролем. Объект "public interface" - это любое приложение для веб-приложений или настольных компьютеров. Некоторые публичные интерфейсы находятся под моим контролем, другие не будут, а другие, о которых я даже не знаю.
Поэтому я не могу доверять маркеру, предоставленному API на шаге 3. Это будет поставляться вместе с соответствующим адресом электронной почты учетной записи Google.
Мне нужно как-то запросить Google и спросить: действительно ли этот токен доступа для [email protected]?
В этом случае [email protected] - уникальный идентификатор учетной записи Google - адрес электронной почты, который кто-то использует для входа в свою учетную запись Google. Это не может считаться адресом Gmail - у кого-то может быть учетная запись Google без учетной записи Gmail.
В документации Google четко указано, как с помощью токена доступа данные могут быть получены из нескольких служб Google. Кажется, ничего не говорится о том, как вы можете проверить, действительно ли данный токен доступа действительно.
Обновление Токен действителен для N сервисов Google. Я не могу попробовать токен в службе Google как средство проверки, так как я не буду знать, какой подмножество всех сервисов Google, которые данный пользователь использует.
Кроме того, я никогда не буду использовать токен доступа к аутентификации Google для доступа к любым службам Google, просто как средство проверки предполагаемого пользователя Google на самом деле является тем, кем они говорят. Если есть еще один способ сделать это, я с удовольствием попробую.