Biblioteca JavaScript de autorización de terceros de Google para sitios web: Referencia de la API

En esta referencia, se describe la API de biblioteca de JavaScript de autorización de terceros de Google, que puedes usar para cargar códigos de autorización o tokens de acceso de Google.

Método: google.accounts.oauth2.initCodeClient

El método initCodeClient inicializa y muestra un cliente de código, con los parámetros de configuración en el parámetro.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

Tipo de datos: CodeClientConfig

En la siguiente tabla, se enumeran las propiedades del tipo de datos CodeClientConfig.

Propiedades
client_id Obligatorio. El ID de cliente para tu aplicación. Puedes encontrar este valor en la Consola de API.
scope Obligatorio. Una lista delimitada por espacios de los alcances que identifican los recursos a los que la aplicación podría acceder en nombre del usuario. Estos valores informan la pantalla de consentimiento que Google muestra al usuario.
include_granted_scopes Opcional, el valor predeterminado es true. Permite que las aplicaciones usen la autorización incremental para solicitar acceso a alcances adicionales en contexto. Si configuras el valor de este parámetro como false y se otorga la solicitud de autorización, el nuevo token de acceso solo cubrirá cualquier permiso para el que scope haya solicitado esta CodeClientConfig.
redirect_uri Obligatorio para la UX de redireccionamiento. Determina dónde el servidor de API redirecciona al usuario después de que completa el flujo de autorización. El valor debe coincidir exactamente con uno de los URI de redireccionamiento autorizados para el cliente de OAuth 2.0, que configuraste en la Consola de API y debe cumplir con nuestras reglas de validación de URI de redireccionamiento. La UX emergente ignorará la propiedad.
callback Obligatorio para la UX emergente. Es la función de JavaScript que controla la respuesta de código que se muestra. La UX del redireccionamiento ignorará la propiedad.
state Opcional. Se recomienda para la UX de redireccionamiento. Especifica cualquier valor de string que use tu aplicación para mantener el estado entre tu solicitud de autorización y la respuesta del servidor de autorización.
enable_serial_consent Opcional, el valor predeterminado es true. Si se configura como false, se inhabilitarán los permisos más detallados de la Cuenta de Google para los ID de cliente de OAuth creados antes de 2019. No tiene efecto en los ID de cliente de OAuth más recientes, ya que los permisos más detallados siempre están habilitados para ellos.
login_hint Opcional. Si tu aplicación sabe qué usuario debe autorizar la solicitud, puede usar esta propiedad para proporcionar una sugerencia de acceso a Google. Si se ejecuta de forma correcta, se omite la selección de la cuenta. El valor del campo sub de la dirección de correo electrónico o el token de ID del usuario de destino. Para obtener más información, consulta el campo login_hint en la documentación de OpenID Connect.
hd Opcional. Si tu aplicación conoce el dominio de Workspace al que pertenece el usuario, utiliza esta opción para proporcionar una sugerencia a Google. Si se ejecuta correctamente, la cantidad de cuentas de usuario se limitará o preseleccionará para el dominio proporcionado. Para obtener más información, consulta el campo hd en la documentación de OpenID Connect.
ux_mode Opcional. El modo de UX que se usará para el flujo de autorización. De forma predeterminada, se abrirá el flujo de consentimiento en una ventana emergente. Los valores válidos son popup y redirect.
select_account Opcional, el valor predeterminado es 'false'. Es un valor booleano que le solicita al usuario que seleccione una cuenta.
error_callback Opcional. La función de JavaScript que controla algunos errores que no son de OAuth, como la ventana emergente, no se abre o se cierra antes de mostrar una respuesta de OAuth.

El campo “type” del parámetro de entrada proporciona el motivo detallado.
  • popup_failed_to_open No se pudo abrir la ventana emergente.
  • popup_closed La ventana emergente se cierra antes de que se muestre una respuesta de OAuth.
  • Marcador de posición desconocido para otros errores.

Tipo de datos: CodeClient

La clase tiene solo un método público requestCode que inicia el flujo de UX del código OAuth 2.0.

interface CodeClient {
  requestCode(): void;
}

Tipo de datos: CodeResponse

Se pasará un objeto CodeResponse de JavaScript al método callback en la UX emergente. En la UX de redireccionamiento, CodeResponse se pasará como parámetro de URL.

En la siguiente tabla, se enumeran las propiedades del tipo de datos CodeResponse.

Propiedades
code El código de autorización de una respuesta de token exitosa.
scope Una lista delimitada por espacios de los permisos que aprueba el usuario.
state El valor de string que su aplicación utiliza para mantener el estado entre su solicitud de autorización y la respuesta.
error Un solo código de error ASCII.
error_description Texto ASCII legible que proporciona información adicional y se usa para ayudar al desarrollador del cliente a comprender el error que ocurrió.
error_uri Un URI que identifica una página web legible con información sobre el error. Se usa para proporcionar información adicional sobre el error al desarrollador cliente.

Método: google.accounts.oauth2.initTokenClient

El método initTokenClient inicializa y muestra un cliente token, con las opciones de configuración en el parámetro.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

Tipo de datos: TokenClientConfig

En la siguiente tabla, se enumeran las propiedades del tipo de datos TokenClientConfig.

Propiedades
client_id Obligatorio. El ID de cliente para tu aplicación. Puedes encontrar este valor en la Consola de API.
callback Obligatorio. La función de JavaScript que controla la respuesta del token que se muestra
scope Obligatorio. Una lista delimitada por espacios de los alcances que identifican los recursos a los que la aplicación podría acceder en nombre del usuario. Estos valores informan la pantalla de consentimiento que Google muestra al usuario.
include_granted_scopes Opcional, el valor predeterminado es true. Permite que las aplicaciones usen la autorización incremental para solicitar acceso a alcances adicionales en contexto. Si configuras el valor de este parámetro como false y se otorga la solicitud de autorización, el nuevo token de acceso solo cubrirá cualquier permiso para el que scope haya solicitado esta TokenClientConfig.
prompt El valor predeterminado es 'select_account'. Una lista de mensajes delimitados por espacios que distinguen entre mayúsculas y minúsculas para presentar al usuario Estos son los posibles valores:
  • string vacía: Se le pedirá al usuario la primera vez que su aplicación solicite acceso. No se puede especificar con otros valores.
  • "none": No muestra ninguna pantalla de autenticación o consentimiento. No se debe especificar con otros valores.
  • 'consent': Solicitar el consentimiento del usuario
  • 'select_account': Solicita al usuario que seleccione una cuenta.
enable_serial_consent Opcional, el valor predeterminado es true. Si se configura como false, se inhabilitarán los permisos más detallados de la Cuenta de Google para los ID de cliente de OAuth creados antes de 2019. No tiene efecto en los ID de cliente de OAuth más recientes, ya que los permisos más detallados siempre están habilitados para ellos.
login_hint Opcional. Si tu aplicación sabe qué usuario debe autorizar la solicitud, puede usar esta propiedad para proporcionar una sugerencia de acceso a Google. Si se ejecuta de forma correcta, se omite la selección de la cuenta. El valor del campo sub de la dirección de correo electrónico o el token de ID del usuario de destino. Para obtener más información, consulta el campo login_hint en la documentación de OpenID Connect.
hd Opcional. Si tu aplicación conoce el dominio de Workspace al que pertenece el usuario, utiliza esta opción para proporcionar una sugerencia a Google. Si se ejecuta correctamente, la cantidad de cuentas de usuario se limitará o preseleccionará para el dominio proporcionado. Para obtener más información, consulta el campo hd en la documentación de OpenID Connect.
state Opcional. No se recomienda. Especifica cualquier valor de string que use tu aplicación para mantener el estado entre tu solicitud de autorización y la respuesta del servidor de autorización.
error_callback Opcional. La función de JavaScript que controla algunos errores que no son de OAuth, como la ventana emergente, no se abre o se cierra antes de mostrar una respuesta de OAuth.

El campo “type” del parámetro de entrada proporciona el motivo detallado.
  • popup_failed_to_open No se pudo abrir la ventana emergente.
  • popup_closed La ventana emergente se cierra antes de que se muestre una respuesta de OAuth.
  • Marcador de posición desconocido para otros errores.

Tipo de datos: TokenClient

La clase tiene un solo método público requestAccessToken, que inicia el flujo de UX del token OAuth 2.0.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Argumentos
overrideConfig OverridableTokenClientConfig Opcional. Las configuraciones que se anularán en este método

Tipo de datos: OverridableTokenClientConfig

En la siguiente tabla, se enumeran las propiedades del tipo de datos OverridableTokenClientConfig.

Propiedades
scope Opcional. Una lista delimitada por espacios de los permisos que identifican los recursos a los que la aplicación podría acceder en nombre del usuario. Estos valores informan la pantalla de consentimiento que Google muestra al usuario.
include_granted_scopes Opcional, el valor predeterminado es true. Permite que las aplicaciones usen la autorización incremental para solicitar acceso a alcances adicionales en contexto. Si configuras el valor de este parámetro como false y se otorga la solicitud de autorización, el nuevo token de acceso solo cubrirá cualquier permiso para el que scope haya solicitado esta OverridableTokenClientConfig.
prompt Opcional. Una lista de mensajes delimitados por espacios que distinguen entre mayúsculas y minúsculas para presentar al usuario
enable_serial_consent Opcional, el valor predeterminado es true. Si se configura como false, se inhabilitarán los permisos más detallados de la Cuenta de Google para los ID de cliente de OAuth creados antes de 2019. No tiene efecto en los ID de cliente de OAuth más recientes, ya que los permisos más detallados siempre están habilitados para ellos.
login_hint Opcional. Si tu aplicación sabe qué usuario debe autorizar la solicitud, puede usar esta propiedad para proporcionar una sugerencia de acceso a Google. Si se ejecuta de forma correcta, se omite la selección de la cuenta. El valor del campo sub de la dirección de correo electrónico o el token de ID del usuario de destino. Para obtener más información, consulta el campo login_hint en la documentación de OpenID Connect.
state Opcional. No se recomienda. Especifica cualquier valor de string que use tu aplicación para mantener el estado entre tu solicitud de autorización y la respuesta del servidor de autorización.

Tipo de datos: TokenResponse

Se pasará un objeto TokenResponse de JavaScript al método de devolución de llamada en la UX emergente.

En la siguiente tabla, se enumeran las propiedades del tipo de datos TokenResponse.

Propiedades
access_token El token de acceso de una respuesta de token exitosa.
expires_in La duración en segundos del token de acceso
hd El dominio alojado al que pertenece el usuario que accedió.
prompt El valor de mensaje que se usó de la lista posible de valores especificados por TokenClientConfig o OverridableTokenClientConfig.
token_type Es el tipo de token emitido.
scope Una lista delimitada por espacios de los permisos que aprueba el usuario.
state El valor de string que su aplicación utiliza para mantener el estado entre su solicitud de autorización y la respuesta.
error Un solo código de error ASCII.
error_description Texto ASCII en formato legible que proporciona información adicional, usado para ayudar al desarrollador del cliente a comprender el error que ocurrió.
error_uri Un URI que identifica una página web legible con información sobre el error. Se usa para proporcionar información adicional sobre el error al desarrollador cliente.

Método: google.accounts.oauth2.hasGrantedAllScopes

Comprueba si el usuario otorgó todos los alcances especificados.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Argumentos
tokenResponse TokenResponse Obligatorio. Un objeto TokenResponse.
firstScope string Obligatorio. El alcance que se debe verificar.
restScopes string[] Opcional. Otros alcances para verificar.
Resultado que se muestra
boolean Verdadero si se otorgan todos los alcances.

Método: google.accounts.oauth2.hasGrantedAnyScope

Comprueba si el usuario otorgó alguno de los alcances especificados.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Argumentos
tokenResponse TokenResponse Obligatorio. Un objeto TokenResponse.
firstScope string Obligatorio. El alcance que se debe verificar.
restScopes string[] Opcional. Otros alcances para verificar.
Resultado que se muestra
boolean Verdadero si se otorga alguno de los alcances.

Método: google.accounts.oauth2.revoke

El método revoke revoca todos los alcances que el usuario otorgó a la app. Se necesita un token de acceso válido para revocar el permiso.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
Argumentos
accessToken string Obligatorio. Un token de acceso válido.
callback la función Opcional. RevocationResponse.

Tipo de datos: RevocationResponse

Se pasará un objeto RevocationResponse de JavaScript al método de devolución de llamada.

En la siguiente tabla, se enumeran las propiedades del tipo de datos RevocationResponse.

Propiedades
successful Booleano. true se activó correctamente y false si se produjo un error.
error String. Indefinido por el éxito. Un solo código de error ASCII. Esto incluye, sin limitaciones, los códigos de error estándar de OAuth 2.0. Errores comunes para el método revoke:
  • invalid_token: El token ya venció o se revocó antes de llamar al método revoke. En la mayoría de los casos, puedes revocar el otorgamiento asociado con el accessToken.
  • invalid_request: El token no se puede revocar. Debes asegurarte de que accessToken sea una credencial válida de Google OAuth 2.0.
error_description String. Indefinido por el éxito. El texto ASCII en lenguaje natural proporciona información adicional sobre la propiedad error. Los desarrolladores pueden usar esta información para comprender mejor el error que se produjo. La string error_description solo está disponible en inglés. Para los errores comunes enumerados en error, el error_description correspondiente:
  • invalid_token: El token venció o se revocó.
  • invalid_request: El token no se puede revocar.