Biblioteca JavaScript de Google 3P Authorization para sitios web: Referencia de la API

En esta referencia, se describe la API de la biblioteca JavaScript de Google 3P Authorization, 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 las configuraciones del 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 de 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, la configuración predeterminada es true. Permite que las aplicaciones usen la autorización incremental para solicitar acceso a permisos adicionales en contexto. Si configuras el valor de este parámetro en false y se otorga la solicitud de autorización, el nuevo token de acceso solo cubrirá los alcances para los cuales el scope solicitó este CodeClientConfig.
redirect_uri Obligatorio para la UX de redireccionamiento. Determina a dónde el servidor de la API redirecciona al usuario después de que este 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 Se requiere para la UX emergente. La función de JavaScript que controla la respuesta de código que se muestra. La UX de redireccionamiento ignorará la propiedad.
state Opcional. Se recomienda para la UX de redireccionamiento. Especifica cualquier valor de string que tu aplicación utilice para mantener el estado entre tu solicitud de autorización y la respuesta del servidor de autorización.
enable_granular_consent Opcional, la configuración predeterminada es true. Si se configura como false, se inhabilitarán los permisos más detallados de la Cuenta de Google para los IDs de cliente de OAuth creados antes de 2019. Si se configuran tanto enable_granular_consent como enable_serial_consent, solo se aplicará el valor enable_granular_consent y se ignorará el valor enable_serial_consent.

No se produce ningún efecto en los IDs de cliente de OAuth más nuevos, ya que siempre se habilitan permisos más detallados para ellos.
enable_serial_consent Este campo es obsoleto, por lo que debes usar enable_granular_consent en su lugar. Esto tiene el mismo efecto que enable_granular_consent. Las aplicaciones existentes que usan enable_serial_consent pueden continuar haciéndolo, pero te recomendamos que actualices el código para usar enable_granular_consent en la próxima actualización de la aplicación.
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 la operación se realiza correctamente, se omitirá la selección de cuentas. El valor del campo de la dirección de correo electrónico o del token de ID sub para el usuario objetivo. 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, usa esto para proporcionar una sugerencia a Google. Si se ejecuta correctamente, las cuentas de usuario se limitan al dominio proporcionado o se preseleccionan para este. Para obtener más información, consulta el campo hd en la documentación de OpenID Connect.
ux_mode Opcional. Es 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, la configuración predeterminada es 'false'. Valor booleano para solicitar al usuario que seleccione una cuenta.
error_callback Opcional. La función de JavaScript que maneja algunos errores que no son de OAuth, como la ventana emergente, no se abre o se cierra antes de que se muestre 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.
  • unknown Marcador de posición para otros errores.

Tipo de datos: CodeClient

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

interface CodeClient {
  requestCode(): void;
}

Tipo de datos: CodeResponse

Se pasará un objeto CodeResponse de JavaScript a tu método callback en la UX emergente. En la UX de redireccionamiento, CodeResponse se pasará como parámetros 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 correcta.
scope Una lista delimitada por espacios de los permisos aprobados por el usuario.
state El valor de string que tu aplicación usa para mantener el estado entre tu solicitud de autorización y la respuesta.
error Código de error ASCII único.
error_description Texto ASCII legible que proporciona información adicional y que se usa para ayudar al desarrollador cliente a comprender el error ocurrido.
error_uri Es un URI que identifica una página web legible con información sobre el error, que se usa para proporcionar información adicional al desarrollador cliente.

Método: google.accounts.oauth2.initTokenClient

El método initTokenClient inicializa y muestra un cliente de token con los parámetros de configuración.

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 de tu aplicación. Puedes encontrar este valor en la Consola de API.
callback Obligatorio. La función de JavaScript que controla la respuesta de 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, la configuración predeterminada es true. Permite que las aplicaciones usen la autorización incremental para solicitar acceso a permisos adicionales en contexto. Si configuras el valor de este parámetro en false y se otorga la solicitud de autorización, el nuevo token de acceso solo cubrirá los alcances para los cuales el scope solicitó este TokenClientConfig.
prompt Opcional, la configuración predeterminada es 'select_account'. Una lista de mensajes delimitados por espacios y que distinguen mayúsculas de minúsculas para presentar al usuario. Estos son los posibles valores:
  • cadena vacía Se le pedirá al usuario solo la primera vez que tu app 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": Solicita el consentimiento al usuario.
  • 'select_account' Pídele al usuario que seleccione una cuenta.
enable_granular_consent Opcional, la configuración predeterminada es true. Si se configura como false, se inhabilitarán los permisos más detallados de la Cuenta de Google para los IDs de cliente de OAuth creados antes de 2019. Si se configuran tanto enable_granular_consent como enable_serial_consent, solo se aplicará el valor enable_granular_consent y se ignorará el valor enable_serial_consent.

No se produce ningún efecto en los IDs de cliente de OAuth más nuevos, ya que siempre se habilitan permisos más detallados para ellos.
enable_serial_consent Este campo es obsoleto, por lo que debes usar enable_granular_consent en su lugar. Esto tiene el mismo efecto que enable_granular_consent. Las aplicaciones existentes que usan enable_serial_consent pueden continuar haciéndolo, pero te recomendamos que actualices el código para usar enable_granular_consent en la próxima actualización de la aplicación.
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 la operación se realiza correctamente, se omitirá la selección de cuentas. El valor del campo de la dirección de correo electrónico o del token de ID sub para el usuario objetivo. 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, usa esto para proporcionar una sugerencia a Google. Si se ejecuta correctamente, las cuentas de usuario se limitan al dominio proporcionado o se preseleccionan para este. 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 tu aplicación utilice 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 maneja algunos errores que no son de OAuth, como la ventana emergente, no se abre o se cierra antes de que se muestre 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.
  • unknown Marcador de posición para otros errores.

Tipo de datos: TokenClient

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

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Argumentos
overrideConfig OverridableTokenClientConfig Opcional. Los parámetros de configuración 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 alcances que identifican los recursos a los que tu 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, la configuración predeterminada es true. Permite que las aplicaciones usen la autorización incremental para solicitar acceso a permisos adicionales en contexto. Si configuras el valor de este parámetro en false y se otorga la solicitud de autorización, el nuevo token de acceso solo cubrirá los alcances para los cuales el scope solicitó este OverridableTokenClientConfig.
prompt Opcional. Una lista de mensajes separados por espacios que distinguen mayúsculas de minúsculas para presentar al usuario.
enable_granular_consent Opcional, la configuración predeterminada es true. Si se configura como false, se inhabilitarán los permisos más detallados de la Cuenta de Google para los IDs de cliente de OAuth creados antes de 2019.Si se configuran enable_granular_consent y enable_serial_consent, solo se aplicarán los valores enable_granular_consent y se ignorará el valor enable_serial_consent.

No se produce ningún efecto en los IDs de cliente de OAuth más nuevos, ya que siempre se habilitan permisos más detallados para ellos.
enable_serial_consent Este campo es obsoleto, por lo que debes usar enable_granular_consent en su lugar. Esto tiene el mismo efecto que enable_granular_consent. Las aplicaciones existentes que usan enable_serial_consent pueden continuar haciéndolo, pero te recomendamos que actualices el código para usar enable_granular_consent en la próxima actualización de la aplicación.
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 la operación se realiza correctamente, se omitirá la selección de cuentas. El valor del campo de la dirección de correo electrónico o del token de ID sub para el usuario objetivo. 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 tu aplicación utilice 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 a tu 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 correcta.
expires_in La vida útil en segundos del token de acceso.
hd El dominio alojado al que pertenece el usuario que accedió
prompt El valor del mensaje que se usó de la lista posible de valores especificados por TokenClientConfig o OverridableTokenClientConfig.
token_type El tipo del token emitido.
scope Una lista delimitada por espacios de los permisos aprobados por el usuario.
state El valor de string que tu aplicación usa para mantener el estado entre tu solicitud de autorización y la respuesta.
error Código de error ASCII único.
error_description Texto ASCII legible que proporciona información adicional y que se usa para ayudar al desarrollador cliente a comprender el error ocurrido.
error_uri Es un URI que identifica una página web legible con información sobre el error, que se usa para proporcionar información adicional al desarrollador cliente.

Método: google.accounts.oauth2.hasGrantedAllScopes

Verifica si el usuario otorgó todos los permisos especificados.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Argumentos
tokenResponse TokenResponse Obligatorio. Un objeto TokenResponse.
firstScope cadena Obligatorio. El alcance que se debe comprobar.
restScopes string[] Opcional. Otros alcances que se deben verificar.
Devuelve
boolean Es verdadero si se otorgan todos los permisos.

Método: google.accounts.oauth2.hasGrantedAnyScope

Verifica si el usuario otorgó alguno de los permisos especificados.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Argumentos
tokenResponse TokenResponse Obligatorio. Un objeto TokenResponse.
firstScope cadena Obligatorio. El alcance que se debe comprobar.
restScopes string[] Opcional. Otros alcances que se deben verificar.
Devuelve
boolean Es verdadero si se otorga alguno de los permisos.

Método: google.accounts.oauth2.revoke

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

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

Tipo de datos: RevocationResponse

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

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

Propiedades
successful Booleano. true si se ejecuta correctamente, false si se produce un error.
error String. Indefinida en caso de éxito. Código de error ASCII único. Esto incluye, entre otros, los códigos de error estándar de OAuth 2.0. Errores comunes del método revoke:
  • invalid_token: El token ya venció o se revocó antes de que se llame al método revoke. En la mayoría de los casos, el otorgamiento asociado con el accessToken se revocó.
  • invalid_request: El token no es revocable. Debes asegurarte de que accessToken sea una credencial válida de Google OAuth 2.0.
error_description String. Indefinida en caso de éxito. El texto ASCII legible proporciona información adicional sobre la propiedad error. Los desarrolladores pueden usar esta información para comprender mejor el error que se produjo. La cadena 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 es revocable.