chrome.identity

Descripción

Usa la API de chrome.identity para obtener tokens de acceso de OAuth2.

Permisos

identity

Tipos

AccountInfo

Propiedades

  • id

    string

    Es un identificador único para la cuenta. Este ID no cambiará mientras dure la cuenta.

AccountStatus

Chrome 84 y versiones posteriores

Enum

"SYNC"
Especifica que la sincronización está habilitada para la cuenta principal.

"CUALQUIERA"
Especifica la existencia de una cuenta principal, si la hay.

GetAuthTokenResult

Chrome 105 y versiones posteriores

Propiedades

  • grantedScopes

    string[] opcional

    Una lista de los permisos de OAuth2 otorgados a la extensión.

  • token

    string opcional

    El token específico asociado con la solicitud.

InvalidTokenDetails

Propiedades

  • token

    string

    El token específico que se debe quitar de la caché.

ProfileDetails

Chrome 84 y versiones posteriores

Propiedades

  • accountStatus

    AccountStatus opcional

    Es el estado de la cuenta principal a la que se accedió en un perfil cuyo ProfileUserInfo se debe mostrar. La configuración predeterminada es el estado de la cuenta SYNC.

ProfileUserInfo

Propiedades

  • correo electrónico

    string

    Una dirección de correo electrónico para la cuenta de usuario con la que se accedió al perfil actual. Estará vacío si el usuario no accedió a su cuenta o si no se especifica el permiso del manifiesto identity.email.

  • id

    string

    Es un identificador único para la cuenta. Este ID no cambiará mientras dure la cuenta. Estará vacío si el usuario no accedió a su cuenta o si no se especifica el permiso del manifiesto identity.email (en M41 y versiones posteriores).

TokenDetails

Propiedades

  • cuenta

    AccountInfo opcional

    El ID de la cuenta cuyo token se debe mostrar. Si no se especifica, la función usará una cuenta del perfil de Chrome: la cuenta de sincronización, si existe, o la primera cuenta web de Google.

  • enableGranularPermissions

    booleano opcional

    Chrome 87 y versiones posteriores

    La marca enableGranularPermissions permite que las extensiones habiliten de manera anticipada la pantalla de consentimiento de permisos detallada, en la que los permisos solicitados se otorgan o rechazan de forma individual.

  • interactive

    booleano opcional

    Para recuperar un token, es posible que el usuario deba acceder a Chrome o que apruebe los alcances solicitados de la aplicación. Si la marca interactiva es true, getAuthToken enviará un mensaje al usuario según sea necesario. Si la marca es false o se omite, getAuthToken mostrará un error cada vez que se requiera un mensaje.

  • permisos

    string[] opcional

    Una lista de permisos de OAuth2 para solicitar.

    Cuando el campo scopes está presente, anula la lista de alcances especificados en manifest.json.

WebAuthFlowDetails

Propiedades

  • abortOnLoadForNonInteractive

    booleano opcional

    Chrome 113 y versiones posteriores

    Establece si finaliza launchWebAuthFlow para solicitudes no interactivas después de que se carga la página. Este parámetro no afecta los flujos interactivos.

    Si se establece en true (valor predeterminado), el flujo finalizará inmediatamente después de que se cargue la página. Cuando se establece en false, el flujo solo finalizará después de que pase timeoutMsForNonInteractive. Esto es útil para los proveedores de identidad que usan JavaScript para realizar redireccionamientos después de que se carga la página.

  • interactive

    booleano opcional

    Indica si se debe iniciar el flujo de autenticación en modo interactivo.

    Dado que algunos flujos de autenticación pueden redireccionar de inmediato a una URL de resultado, launchWebAuthFlow oculta su vista web hasta que la primera navegación redirecciona a la URL final o termina de cargar una página que se mostrará.

    Si la marca interactive es true, se mostrará la ventana cuando se complete la carga de la página. Si la marca es false o se omite, launchWebAuthFlow se mostrará con un error si la navegación inicial no completa el flujo.

    En el caso de los flujos que usan JavaScript para el redireccionamiento, se puede establecer abortOnLoadForNonInteractive como false en combinación con la configuración timeoutMsForNonInteractive para que la página tenga la oportunidad de realizar redireccionamientos.

  • timeoutMsForNonInteractive

    número opcional

    Chrome 113 y versiones posteriores

    La cantidad máxima de tiempo (en milisegundos) que launchWebAuthFlow puede ejecutarse en modo no interactivo en total. Solo tiene efecto si interactive tiene el valor false.

  • url

    string

    La URL que inicia el flujo de Auth.

Métodos

clearAllCachedAuthTokens()

Promesa Chrome 87 y versiones posteriores .
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)

Restablece el estado de la API de Identity:

  • Quita todos los tokens de acceso OAuth2 de la caché de tokens
  • Quita las preferencias de la cuenta del usuario
  • Desautoriza al usuario de todos los flujos de Auth.

Parámetros

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promesa<void>

    Chrome 106 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getAccounts()

Promesa Canal para desarrolladores .
chrome.identity.getAccounts(
  callback?: function,
)

Recupera una lista de objetos AccountInfo que describen las cuentas presentes en el perfil.

getAccounts solo se admite en el canal para desarrolladores.

Parámetros

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (accounts: AccountInfo[]) => void

Muestra

  • Promise&lt;AccountInfo[]&gt;

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getAuthToken()

Promesa
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)

Obtiene un token de acceso de OAuth2 mediante el ID de cliente y los alcances especificados en la sección oauth2 de manifest.json.

La API de Identity almacena en caché los tokens de acceso en la memoria, por lo que puedes llamar de manera no interactiva a getAuthToken cada vez que se requiera un token. La caché de tokens controla automáticamente el vencimiento.

Para una buena experiencia del usuario, es importante que las solicitudes de tokens interactivos se inicien en la IU de tu app y se explique para qué sirve la autorización. Si no lo haces, tus usuarios recibirán solicitudes de autorización o pantallas de acceso a Chrome si no accedieron y no tienen contexto. En particular, no uses getAuthToken de manera interactiva cuando se inicie tu app por primera vez.

Nota: Cuando se realiza una llamada con una devolución de llamada, en lugar de mostrar un objeto, esta función muestra las dos propiedades como argumentos separados pasados a la devolución de llamada.

Parámetros

Muestra

  • Promise&lt;GetAuthTokenResult&gt;

    Chrome 105 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getProfileUserInfo()

Promesa
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)

Recupera la dirección de correo electrónico y el ID de GAIA ofuscado del usuario que accedió a un perfil.

Requiere el permiso de manifiesto identity.email. De lo contrario, muestra un resultado vacío.

Esta API es diferente de Identity.getCuentas en dos aspectos. La información que se muestra está disponible sin conexión y solo se aplica a la cuenta principal del perfil.

Parámetros

  • detalles

    ProfileDetails opcional

    Chrome 84 y versiones posteriores

    Opciones del perfil.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (userInfo: ProfileUserInfo) => void

Muestra

  • Promise&lt;ProfileUserInfo&gt;

    Chrome 106 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)

Genera una URL de redireccionamiento para usar en launchWebAuthFlow.

Las URLs generadas coinciden con el patrón https://<app-id>.chromiumapp.org/*.

Parámetros

  • ruta de acceso

    string opcional

    La ruta de acceso adjunta al final de la URL generada.

Muestra

  • string

launchWebAuthFlow()

Promesa
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

Inicia un flujo de Auth en la URL especificada.

Este método habilita los flujos de autenticación con proveedores de identidad ajenos a Google. Para ello, inicia una vista web y navega a la primera URL en el flujo de autenticación del proveedor. Cuando el proveedor redirecciona a una URL que coincide con el patrón https://<app-id>.chromiumapp.org/*, se cerrará la ventana y se pasará la URL de redireccionamiento final a la función callback.

Para que el usuario tenga una buena experiencia, es importante que la IU de tu app inicie los flujos de autenticación interactivos para explicar para qué sirve la autorización. Si no lo haces, los usuarios recibirán solicitudes de autorización sin contexto. En particular, no inicies un flujo de autenticación interactivo cuando inicies tu app por primera vez.

Parámetros

  • Opciones de flujo de WebAuth.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (responseUrl?: string) => void

    • responseUrl

      string opcional

Muestra

  • Promesa<string | indefinido>

    Chrome 106 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

removeCachedAuthToken()

Promesa
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)

Quita un token de acceso de OAuth2 de la caché de tokens de la API de Identity.

Si se descubre que un token de acceso no es válido, se debe pasar a removeCachedAuthToken para quitarlo de la caché. Luego, la app puede recuperar un token nuevo con getAuthToken.

Parámetros

  • Información del token.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promesa<void>

    Chrome 106 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

Eventos

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

Se activa cuando cambia el estado de acceso de una cuenta en el perfil del usuario.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (account: AccountInfo, signedIn: boolean) => void