Descrizione
Utilizza l'API chrome.identity
per ottenere i token di accesso OAuth2.
Autorizzazioni
identity
Tipi
AccountInfo
Proprietà
-
id
stringa
Un identificatore univoco dell'account. Questo ID rimarrà invariato per tutta la durata dell'account.
AccountStatus
Enum
"SYNC"
Specifica che la sincronizzazione è abilitata per l'account principale.
"ANY"
Specifica l'esistenza di un eventuale account principale.
GetAuthTokenResult
Proprietà
-
grantedScopes
string[] facoltativo
Un elenco di ambiti OAuth2 concessi all'estensione.
-
token
stringa facoltativo
Il token specifico associato alla richiesta.
InvalidTokenDetails
Proprietà
-
token
stringa
Il token specifico che deve essere rimosso dalla cache.
ProfileDetails
Proprietà
-
accountStatus
AccountStatus facoltativo
Stato dell'account principale a cui è stato eseguito l'accesso a un profilo di cui restituire
ProfileUserInfo
. Il valore predefinito è lo stato dell'accountSYNC
.
ProfileUserInfo
Proprietà
-
email
stringa
Un indirizzo email per l'account utente a cui è stato effettuato l'accesso al profilo corrente. Il campo è vuoto se l'utente non ha eseguito l'accesso o se l'autorizzazione per il file manifest
identity.email
non è specificata. -
id
stringa
Un identificatore univoco dell'account. Questo ID rimarrà invariato per tutta la durata dell'account. Il campo è vuoto se l'utente non ha eseguito l'accesso o (nella versione M41 e versioni successive) l'autorizzazione del file manifest
identity.email
non è specificata.
TokenDetails
Proprietà
-
account
AccountInfo facoltativo
L'ID account per il quale restituire il token. Se non specificato, la funzione utilizzerà un account del profilo Chrome: l'account Sync, se disponibile, o il primo account web Google.
-
enableGranularPermissions
booleano facoltativo
Chrome 87 e versioni successive .Il flag
enableGranularPermissions
consente alle estensioni di attivare in anticipo la schermata di consenso granulare delle autorizzazioni, in cui le autorizzazioni richieste vengono concesse o negate singolarmente. -
interattivo
booleano facoltativo
Il recupero di un token potrebbe richiedere all'utente di accedere a Chrome o di approvare gli ambiti richiesti dall'applicazione. Se il flag interattivo è
true
,getAuthToken
chiederà all'utente, se necessario. Se il flag èfalse
o omesso,getAuthToken
restituirà un errore ogni volta che è necessario un prompt. -
ambiti
string[] facoltativo
Un elenco di ambiti OAuth2 da richiedere.
Se è presente, il campo
scopes
sostituisce l'elenco di ambiti specificati nel file manifest.json.
WebAuthFlowDetails
Proprietà
-
abortOnLoadForNonInteractive
booleano facoltativo
Chrome 113 e versioni successive .Indica se terminare
launchWebAuthFlow
per le richieste non interattive dopo il caricamento della pagina. Questo parametro non influisce sui flussi interattivi.Se viene impostato su
true
(valore predefinito), il flusso termina subito dopo il caricamento della pagina. Se impostato sufalse
, il flusso terminerà solo dopo il passaggio ditimeoutMsForNonInteractive
. Questo è utile per i provider di identità che utilizzano JavaScript per eseguire i reindirizzamenti dopo il caricamento della pagina. -
interattivo
booleano facoltativo
Indica se avviare il flusso di autenticazione in modalità interattiva.
Poiché alcuni flussi di autorizzazione possono reindirizzare immediatamente a un URL dei risultati,
launchWebAuthFlow
nasconde la sua visualizzazione web fino a quando la prima navigazione non reindirizza all'URL finale o termina il caricamento di una pagina da visualizzare.Se il flag
interactive
ètrue
, la finestra verrà visualizzata al termine del caricamento di una pagina. Se il flag èfalse
o omesso,launchWebAuthFlow
restituirà un errore se la navigazione iniziale non completa il flusso.Per i flussi che utilizzano JavaScript per il reindirizzamento, è possibile impostare
abortOnLoadForNonInteractive
sufalse
in combinazione con l'impostazionetimeoutMsForNonInteractive
per consentire alla pagina di eseguire eventuali reindirizzamenti. -
timeoutMsForNonInteractive
numero facoltativo
Chrome 113 e versioni successive .Il tempo massimo, in millisecondi, per cui
launchWebAuthFlow
può essere eseguito in modalità non interattiva totale. Ha effetto solo seinteractive
èfalse
. -
url
stringa
L'URL che avvia il flusso di autenticazione.
Metodi
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Reimposta lo stato dell'API Identity:
- Rimuove tutti i token di accesso OAuth2 dalla cache dei token
- Rimuove le preferenze dell'account dell'utente
- Annulla l'autorizzazione dell'utente da tutti i flussi di autorizzazione
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promesso<void>
Chrome 106 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Recupera un elenco di oggetti AccountInfo che descrivono gli account presenti nel profilo.
getAccounts
è supportato solo sul canale Dev.
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(accounts: AccountInfo[]) => void
-
account
-
Resi
-
Promise<AccountInfo[]>
Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Recupera un token di accesso OAuth2 utilizzando l'ID client e gli ambiti specificati nella sezione oauth2
di manifest.json.
L'API Identity memorizza nella cache i token di accesso in memoria, quindi puoi chiamare getAuthToken
in modo non interattivo ogni volta che è necessario un token. La cache dei token gestisce automaticamente la scadenza.
Per una buona esperienza utente, è importante che le richieste di token interattive vengano avviate dall'interfaccia utente dell'app e spieghi a cosa serve l'autorizzazione. In caso contrario, gli utenti riceveranno richieste di autorizzazione o schermate di accesso a Chrome se non hanno eseguito l'accesso, senza alcun contesto. In particolare, non utilizzare getAuthToken
in modo interattivo al primo avvio dell'app.
Nota: quando viene chiamata con un callback, invece di restituire un oggetto, questa funzione restituisce le due proprietà come argomenti separati passati al callback.
Parametri
-
dettagli
TokenDetails facoltativo
Opzioni token.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: GetAuthTokenResult) => void
-
risultatoChrome 105 e versioni successive .
-
Resi
-
Promise<GetAuthTokenResult>
Chrome 105 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
Recupera l'indirizzo email e l'ID GAIA offuscato dell'utente che ha eseguito l'accesso a un profilo.
Richiede l'autorizzazione per il manifest identity.email
. In caso contrario, restituisce un risultato vuoto.
Questa API è diversa da Identity.getAccounts per due aspetti. Le informazioni restituite sono disponibili offline e si applicano solo all'account principale del profilo.
Parametri
-
dettagli
ProfileDetails facoltativo
Chrome 84 e versioni successive .Opzioni del profilo.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Resi
-
Promise<ProfileUserInfo>
Chrome 106 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
Genera un URL di reindirizzamento da utilizzare in launchWebAuthFlow
.
Gli URL generati corrispondono al pattern https://<app-id>.chromiumapp.org/*
.
Parametri
-
percorso
stringa facoltativo
Il percorso aggiunto alla fine dell'URL generato.
Resi
-
stringa
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Avvia un flusso di autenticazione in corrispondenza dell'URL specificato.
Questo metodo abilita i flussi di autenticazione con provider di identità non Google avviando una visualizzazione web e passando al primo URL nel flusso di autenticazione del provider. Quando il provider reindirizza a un URL corrispondente al pattern https://<app-id>.chromiumapp.org/*
, la finestra viene chiusa e l'URL di reindirizzamento finale viene passato alla funzione callback
.
Per una buona esperienza utente, è importante che i flussi di autorizzazione interattivi vengano avviati dall'interfaccia utente dell'app e spieghino a cosa serve l'autorizzazione. Se non lo fai, i tuoi utenti riceveranno richieste di autorizzazione senza contesto. In particolare, non avviare un flusso di autenticazione interattivo al primo avvio dell'app.
Parametri
-
dettagli
Opzioni del flusso WebAuth.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(responseUrl?: string) => void
-
responseUrl
stringa facoltativo
-
Resi
-
Promesso<string | non definito>
Chrome 106 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
Rimuove un token di accesso OAuth2 dalla cache dei token dell'API Identity.
Se un token di accesso risulta non valido, deve essere passato a removeCachedAuthToken per rimuoverlo dalla cache. L'app potrebbe quindi recuperare un nuovo token con getAuthToken
.
Parametri
-
dettagli
Informazioni sul token.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promesso<void>
Chrome 106 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
Eventi
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Attivato quando viene modificato lo stato di accesso di un account nel profilo dell'utente.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(account: AccountInfo, signedIn: boolean) => void
-
account
-
signedIn
booleano
-