Descripción
Usa la API de chrome.identity
para obtener tokens de acceso de OAuth2.
Permisos
identity
Tipos
AccountInfo
Propiedades
-
id
cadena
Es un identificador único para la cuenta. Este ID no cambiará durante el ciclo de vida de la cuenta.
AccountStatus
Enum
"SYNC"
Especifica que la sincronización está habilitada para la cuenta principal.
"ANY"
Especifica la existencia de una cuenta principal, si la hubiera.
GetAuthTokenResult
Propiedades
-
grantedScopes
string[] opcional
Una lista de los permisos de OAuth2 que se otorgaron a la extensión.
-
token
cadena opcional
El token específico asociado con la solicitud.
InvalidTokenDetails
Propiedades
-
token
cadena
El token específico que se debe quitar de la caché.
ProfileDetails
Propiedades
-
accountStatus
AccountStatus opcional
Es un estado de la cuenta principal con la que se accedió a un perfil cuyo
ProfileUserInfo
debe devolverse. La configuración predeterminada es el estado de la cuentaSYNC
.
ProfileUserInfo
Propiedades
-
email
cadena
Una dirección de correo electrónico de la cuenta de usuario con la que se accedió al perfil actual. Estará vacío si el usuario no accedió o no se especifica el permiso del manifiesto de
identity.email
. -
id
cadena
Es un identificador único para la cuenta. Este ID no cambiará durante el ciclo de vida de la cuenta. Estará vacío si el usuario no accedió o (en M41 y versiones posteriores) no se especifica el permiso del manifiesto de
identity.email
.
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 la hay) o, de lo contrario, la primera Cuenta web de Google.
-
enableGranularPermissions
booleano opcional
Chrome 87 y versiones posterioresLa marca
enableGranularPermissions
permite que las extensiones habiliten de forma anticipada la pantalla de consentimiento de permisos detallados, 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 aprobar los permisos solicitados de la aplicación. Si la marca interactiva es
true
,getAuthToken
le solicitará al usuario que lo haga según sea necesario. Si la marca se omite o esfalse
,getAuthToken
mostrará una falla cada vez que se requiera un mensaje. -
permisos
string[] opcional
Una lista de los 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 posterioresIndica si se debe finalizar
launchWebAuthFlow
para solicitudes no interactivas después de que se cargue la página. Este parámetro no afecta los flujos interactivos.Cuando se establece en
true
(predeterminado), el flujo finalizará inmediatamente después de que se cargue la página. Cuando se configura enfalse
, el flujo solo finalizará después de que pase eltimeoutMsForNonInteractive
. 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 Auth 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 debería mostrarse.Si la marca
interactive
estrue
, se mostrará la ventana cuando se complete la carga de una página. Si la marca se omite o esfalse
,launchWebAuthFlow
mostrará un error si la navegación inicial no completa el flujo.En el caso de los flujos que usan JavaScript para el redireccionamiento,
abortOnLoadForNonInteractive
se puede configurar comofalse
junto con la configuracióntimeoutMsForNonInteractive
para darle a la página la oportunidad de realizar redireccionamientos. -
timeoutMsForNonInteractive
número opcional
Chrome 113 y versiones posterioresLa cantidad máxima de tiempo (en milisegundos) que se permite que
launchWebAuthFlow
se ejecute en modo no interactivo en total. Solo tiene efecto siinteractive
esfalse
. -
url
cadena
La URL que inicia el flujo de Auth.
Métodos
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Restablece el estado de la API de Identity:
- Quita todos los tokens de acceso de OAuth2 de la caché de tokens.
- Quita las preferencias de la cuenta del usuario
- Desautoriza al usuario de todos los flujos de autenticación
Parámetros
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Devuelve
-
Promise<void>
Chrome 106 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Recupera una lista de objetos AccountInfo que describen las cuentas presentes en el perfil.
getAccounts
solo es compatible con el canal para desarrolladores.
Parámetros
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(accounts: AccountInfo[]) => void
-
cuentas
-
Devuelve
-
Promise<AccountInfo[]>
Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Obtiene un token de acceso de OAuth2 con el ID de cliente y los permisos 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 a getAuthToken
de forma no interactiva cada vez que se requiera un token. La caché de tokens controla automáticamente el vencimiento.
Para que el usuario tenga una buena experiencia, es importante que la IU de tu app inicie las solicitudes de tokens interactivos y explica para qué sirve la autorización. Si no lo haces, los usuarios recibirán solicitudes de autorización o pantallas de acceso de Chrome, si no accedieron, sin contexto. En particular, no uses getAuthToken
de forma interactiva cuando se inicie tu app por primera vez.
Nota: Cuando se llama con una devolución de llamada, en lugar de mostrar un objeto, esta función muestra las dos propiedades como argumentos separados que se pasan a la devolución de llamada.
Parámetros
-
detalles
TokenDetails opcional
Opciones de token.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(result: GetAuthTokenResult) => void
-
resultadoChrome 105 y versiones posteriores
-
Devuelve
-
Promise<GetAuthTokenResult>
Chrome 105 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
getProfileUserInfo()
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 del manifiesto identity.email
. De lo contrario, muestra un resultado vacío.
Esta API es diferente de Identity.getCuentas de dos maneras. 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 posterioresOpciones de perfil.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Devuelve
-
Promise<ProfileUserInfo>
Chrome 106 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa 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
cadena opcional
Es la ruta de acceso anexada al final de la URL generada.
Devuelve
-
cadena
launchWebAuthFlow()
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 del 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 cierra la ventana y la URL de redireccionamiento final se pasa a la función callback
.
Para que el usuario tenga una buena experiencia, es importante que la IU de tu app inicie flujos de Auth interactivas en los que se explica para qué sirve la autorización. Si no lo haces, los usuarios recibirán solicitudes de autorización sin contexto. En particular, no debes iniciar un flujo de Auth interactivo cuando tu app se inicie por primera vez.
Parámetros
-
detalles
Opciones de flujo de WebAuth.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(responseUrl?: string) => void
-
responseUrl
cadena opcional
-
Devuelve
-
Promise<string | undefined>
Chrome 106 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
removeCachedAuthToken()
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
-
detalles
Información del token.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Devuelve
-
Promise<void>
Chrome 106 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa 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
la función
El parámetro
callback
se ve de la siguiente manera:(account: AccountInfo, signedIn: boolean) => void
-
cuenta
-
signedIn
boolean
-