Referencia de la API de JavaScript de la Autorización de la Cuenta de Google

En esta referencia, se describe la API de JavaScript de autorización de la Cuenta de Google, que se usa para obtener códigos de autorización o tokens de acceso de Google.

Método: google.accounts.oauth2.initCodeClient

El método initCodeClient inicializa y devuelve un cliente de código, con las configuraciones 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. Es el ID de cliente de tu aplicación. Puedes encontrar este valor en la Consola de APIs.
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 a 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 permisos adicionales en contexto. Si estableces el valor de este parámetro en false y se otorga la solicitud de autorización, el nuevo token de acceso solo abarcará los permisos a los que se solicitó el scope en este CodeClientConfig.
redirect_uri Se requiere para la UX de redireccionamiento. Determina a dónde redirecciona el servidor de la API al usuario después de que este completa el flujo de autorización. El valor debe coincidir exactamente con uno de los URIs de redireccionamiento autorizados para el cliente de OAuth 2.0 que configuraste en la consola de APIs y debe cumplir con nuestras reglas de validación de URIs de redireccionamiento. La UX de la ventana emergente ignorará la propiedad.
callback Es obligatorio para la UX de la ventana emergente. Es la función de JavaScript que controla la respuesta del código devuelto. La experiencia del usuario de redireccionamiento ignorará la propiedad.
state Opcional. Se recomienda para la UX de redireccionamiento. Especifica cualquier valor de cadena que tu aplicación use para mantener el estado entre tu solicitud de autorización y la respuesta del servidor de autorización.
enable_granular_consent Obsoleto. No tiene efecto si se configura. Consulta los permisos detallados para obtener detalles sobre el comportamiento del consentimiento.
enable_serial_consent Obsoleto. No tiene efecto si se configura. Consulta los permisos detallados para obtener detalles sobre el comportamiento del consentimiento.
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 omite la selección de la cuenta. Es el valor del campo sub del token de ID o la dirección de correo electrónico del 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, úsalo para proporcionar una sugerencia a Google. Cuando la operación se realiza correctamente, las cuentas de usuario se limitan al dominio proporcionado o se preseleccionan para él. Para obtener más información, consulta el campo hd en la documentación de OpenID Connect.
ux_mode Opcional. 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 para solicitar al usuario que seleccione una cuenta.
error_callback Opcional. Función de JavaScript que controla algunos errores que no son de OAuth, como el error al abrir la ventana emergente o el cierre de la ventana 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: Se cierra la ventana emergente antes de que se devuelva una respuesta de OAuth.
  • unknown Es un 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 de 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 de la ventana emergente. En la UX de redireccionamiento, el CodeResponse se pasará como parámetros de URL.

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

Propiedades
code Es el código de autorización de una respuesta de token correcta.
scope Es una lista de los permisos aprobados por el usuario, delimitada por espacios.
state Es el valor de cadena que usa tu aplicación para mantener el estado entre la solicitud de autorización y la respuesta.
error Es un solo código de error ASCII.
error_description Texto ASCII legible que proporciona información adicional y se usa para ayudar al desarrollador cliente a comprender el error que se produjo.
error_uri Es un URI que identifica una página web legible con información sobre el error, que se usa para proporcionar al desarrollador del cliente información adicional sobre el error.

Método: google.accounts.oauth2.initTokenClient

El método initTokenClient inicializa y devuelve un cliente de tokens con las configuraciones del 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. Es el ID de cliente de tu aplicación. Puedes encontrar este valor en la Consola de APIs.
callback Obligatorio. Es la función de JavaScript que controla la respuesta del token devuelto.
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 a 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 permisos adicionales en contexto. Si estableces el valor de este parámetro en false y se otorga la solicitud de autorización, el nuevo token de acceso solo abarcará los permisos a los que se solicitó el scope en este TokenClientConfig.
prompt Es opcional y el valor predeterminado es "select_account". Es una lista de instrucciones delimitadas por espacios y que distinguen mayúsculas de minúsculas para presentar al usuario. Los valores posibles son los siguientes:
  • cadena vacía Solo se le pedirá al usuario la primera vez que tu app solicite acceso. No se puede especificar con otros valores.
  • "none": No se muestran pantallas de autenticación ni de consentimiento. No se debe especificar con otros valores.
  • "consent": Solicita el consentimiento del usuario.
  • 'select_account': Solicita al usuario que seleccione una cuenta.
enable_granular_consent Obsoleto. No tiene efecto si se configura. Consulta los permisos detallados para obtener detalles sobre el comportamiento del consentimiento.
enable_serial_consent Obsoleto. No tiene efecto si se configura. Consulta los permisos detallados para obtener detalles sobre el comportamiento del consentimiento.
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 omite la selección de la cuenta. Es el valor del campo sub del token de ID o la dirección de correo electrónico del 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, úsalo para proporcionar una sugerencia a Google. Cuando la operación se realiza correctamente, las cuentas de usuario se limitan al dominio proporcionado o se preseleccionan para él. 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 cadena que tu aplicación use para mantener el estado entre tu solicitud de autorización y la respuesta del servidor de autorización.
error_callback Opcional. Función de JavaScript que controla algunos errores que no son de OAuth, como el error al abrir la ventana emergente o el cierre de la ventana 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: Se cierra la ventana emergente antes de que se devuelva una respuesta de OAuth.
  • unknown Es un 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. Es la configuración que se anulará en este método.

Tipo de datos: OverridableTokenClientConfig

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

Propiedades
scope Opcional. Es una lista de alcances delimitados por espacios que identifican los recursos a los que tu aplicación podría acceder en nombre del usuario. Estos valores informan a 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 permisos adicionales en contexto. Si estableces el valor de este parámetro en false y se otorga la solicitud de autorización, el nuevo token de acceso solo abarcará los permisos a los que se solicitó el scope en este OverridableTokenClientConfig.
prompt Opcional. Es una lista de instrucciones delimitadas por espacios que distinguen mayúsculas de minúsculas para presentar al usuario.
enable_granular_consent Obsoleto. No tiene efecto si se configura. Consulta los permisos detallados para obtener detalles sobre el comportamiento del consentimiento.
enable_serial_consent Obsoleto. No tiene efecto si se configura. Consulta los permisos detallados para obtener detalles sobre el comportamiento del consentimiento.
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 omite la selección de la cuenta. Es el valor del campo sub del token de ID o la dirección de correo electrónico del 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 cadena que tu aplicación use 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 de la ventana emergente.

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

Propiedades
access_token Es el token de acceso de una respuesta de token correcta.
expires_in Es la vida útil del token de acceso en segundos.
hd Es el dominio alojado al que pertenece el usuario que accedió.
prompt Es el valor de la instrucción que se usó de la lista posible de valores especificados por TokenClientConfig o OverridableTokenClientConfig.
token_type Es el tipo de token emitido.
scope Es una lista de los permisos aprobados por el usuario, delimitada por espacios.
state Es el valor de cadena que usa tu aplicación para mantener el estado entre la solicitud de autorización y la respuesta.
error Es 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 se produjo.
error_uri Es un URI que identifica una página web legible con información sobre el error, que se usa para proporcionar al desarrollador del cliente información adicional sobre el error.

Método: google.accounts.oauth2.hasGrantedAllScopes

Comprueba 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 string Obligatorio. Es el alcance que se verificará.
restScopes string[] Opcional. Otros permisos que se deben verificar.
Muestra
booleano 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 string Obligatorio. Es el alcance que se verificará.
restScopes string[] Opcional. Otros permisos que se deben verificar.
Muestra
booleano Es verdadero si se otorga alguno de los permisos.

Método: google.accounts.oauth2.revoke

El método revoke revoca todos los permisos que el usuario 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 string Obligatorio. Un token de acceso válido.
callback función Opcional. Controlador de 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 en caso de éxito y false en caso de falla.
error String. Se devuelve como indefinido si la operación se realiza correctamente. Es un solo código de error ASCII. 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 llamara al método revoke. En la mayoría de los casos, puedes considerar que se revocó el permiso asociado con el objeto 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. Se devuelve como indefinido si la operación se realiza correctamente. 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á en inglés. Para los errores comunes que se indican en error, se muestra el error_description correspondiente:
  • invalid_token: El token venció o se revocó.
  • invalid_request: El token no se puede revocar.