¿Cómo puedo verificar un token de acceso de autenticación de Google?
Necesito consultar de alguna manera a Google y preguntar: ¿Es [dado el token de acceso] válido para la cuenta de Google [ejemplo@ejemplo.com]?
Versión corta :
está claro cómo un token de acceso suministrado a través de la autenticación de Google Api :: OAuth Authentication for Web Applications se puede utilizar para luego solicitar datos de una gama de servicios de Google. No está claro cómo verificar si un token de acceso determinado es válido para una cuenta de Google determinada. Me gustaría saber cómo.
Versión larga :
estoy desarrollando una API que usa autenticación basada en token. Se devolverá un token al proporcionar un nombre de usuario + contraseña válidos o al proporcionar un token de terceros de cualquiera de los N servicios verificables.
Uno de los servicios de terceros será Google, lo que permitirá a un usuario autenticarse contra mi servicio utilizando su cuenta de Google. Posteriormente, esto se ampliará para incluir cuentas de Yahoo, proveedores de OpenID de confianza, etc.
Ejemplo esquemático de acceso basado en Google:
texto alternativo http://webignition.net/images/figures/auth_figure002.png
La entidad 'API' está bajo mi control total. La entidad de 'interfaz pública' es cualquier aplicación web o de escritorio. Algunas interfaces públicas están bajo mi control, otras no lo estarán y otras aún no las conozco.
Por lo tanto, no puedo confiar en el token suministrado a la API en el paso 3. Esto se proporcionará junto con la dirección de correo electrónico de la cuenta de Google correspondiente.
Necesito consultar de alguna manera a Google y preguntar: ¿Es válido este token de acceso por ejemplo@ejemplo.com ?
En este caso, example@example.com es el identificador único de la cuenta de Google: la dirección de correo electrónico que alguien usa para iniciar sesión en su cuenta de Google. No se puede suponer que se trata de una dirección de Gmail: alguien puede tener una cuenta de Google sin tener una cuenta de Gmail.
La documentación de Google establece claramente cómo, con un token de acceso, los datos se pueden recuperar de varios servicios de Google. Nada parece indicar cómo puede verificar si un token de acceso dado es válido en primer lugar.
Actualización El token es válido para N servicios de Google. No puedo probar un token contra un servicio de Google como medio para verificarlo, ya que no sabré qué subconjunto de todos los servicios de Google utiliza un usuario determinado.
Además, nunca usaré el token de acceso de autenticación de Google para acceder a ningún servicio de Google, simplemente como un medio para verificar que un supuesto usuario de Google sea realmente quien dice ser. Si hay otra forma de hacerlo, estoy feliz de intentarlo.