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 non cambierà per tutta la durata dell'account.
AccountStatus
Enum
"SINCRONIZZA"
Specifica che la sincronizzazione è attiva per l'account principale.
"ANY"
Specifica l'esistenza di un account principale, se esistente.
GetAuthTokenResult
Proprietà
-
grantedScopes
string[] facoltativo
Un elenco degli 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
Lo stato dell'account principale che ha eseguito l'accesso a un profilo di cui deve essere restituito il valore
ProfileUserInfo
. Il valore predefinito èSYNC
stato dell'account.
ProfileUserInfo
Proprietà
-
email
stringa
L'indirizzo email dell'account utente che ha eseguito l'accesso al profilo corrente. Valore 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 non cambierà per tutta la durata dell'account. Vuoto se l'utente non ha eseguito l'accesso o (in M41 e versioni successive) l'autorizzazione per il file manifest
identity.email
non è specificata.
TokenDetails
Proprietà
-
account
AccountInfo facoltativo
L'ID account di cui deve essere restituito il token. Se non specificato, la funzione utilizzerà un account del profilo Chrome: l'account di sincronizzazione, se disponibile, o il primo account web Google.
-
enableGranularPermissions
booleano facoltativo
Chrome 87 e versioni successiveIl flag
enableGranularPermissions
consente alle estensioni di attivare in anticipo la schermata di consenso delle autorizzazioni granulari, in cui le autorizzazioni richieste vengono concesse o negate singolarmente. -
interactive
booleano facoltativo
Il recupero di un token potrebbe richiedere all'utente di accedere a Chrome o approvare gli ambiti richiesti dall'applicazione. Se il flag interattivo è
true
,getAuthToken
richiederà all'utente la richiesta, 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 specificato in manifest.json.
WebAuthFlowDetails
Proprietà
-
abortOnLoadForNonInteractive
booleano facoltativo
Chrome 113 e versioni successiveIndica se terminare
launchWebAuthFlow
per le richieste non interattive dopo il caricamento della pagina. Questo parametro non influisce sui flussi interattivi.Se impostato su
true
(valore predefinito) il flusso verrà interrotto immediatamente dopo il caricamento della pagina. Se viene impostato sufalse
, il flusso terminerà solo al termine deltimeoutMsForNonInteractive
. Questo è utile per i provider di identità che utilizzano JavaScript per eseguire i reindirizzamenti dopo il caricamento della pagina. -
interactive
booleano facoltativo
Se avviare il flusso di autenticazione in modalità interattiva.
Poiché alcuni flussi di autenticazione potrebbero reindirizzare immediatamente a un URL di risultato,
launchWebAuthFlow
nasconde la propria visualizzazione web fino a quando la prima navigazione non reindirizza all'URL finale o non completa il caricamento di una pagina da visualizzare.Se il flag
interactive
ètrue
, la finestra verrà visualizzata al completamento 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,
abortOnLoadForNonInteractive
può essere impostato sufalse
in combinazione con l'impostazionetimeoutMsForNonInteractive
per dare alla pagina la possibilità di eseguire reindirizzamenti. -
timeoutMsForNonInteractive
numero facoltativo
Chrome 113 e versioni successiveLa quantità massima di tempo, in millisecondi, per l'esecuzione totale di
launchWebAuthFlow
in modalità non interattiva. 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
- Consente di annullare l'autorizzazione dell'utente da tutti i flussi di autorizzazione
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Ritorni
-
Promise<void>
Chrome 106 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive; 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
-
Ritorni
-
Promise<AccountInfo[]>
Le promesse sono supportate solo per Manifest V3 e versioni successive; 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, quindi è possibile chiamare getAuthToken
in modo non interattivo ogni volta che è necessario un token. La cache del 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 spieghino a cosa serve l'autorizzazione. Se non lo fai, gli utenti riceveranno richieste di autorizzazione o schermate di accesso di Chrome, se non hanno eseguito l'accesso, senza contesto. In particolare, non usare getAuthToken
in modo interattivo quando la tua app viene lanciata per la prima volta.
Nota: quando viene richiamata 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
-
Ritorni
-
Promise<GetAuthTokenResult>
Chrome 105 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive; 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 i file 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
Facoltativo ProfileDetails
Chrome 84 e versioni successiveOpzioni del profilo.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Ritorni
-
Promise<ProfileUserInfo>
Chrome 106 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive; 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.
Ritorni
-
stringa
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Avvia un flusso di autenticazione all'URL specificato.
Questo metodo consente 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 trasmesso alla funzione callback
.
Per una buona esperienza utente, è importante che dei flussi di autenticazione interattivi vengano avviati dall'interfaccia utente dell'app che spiega a cosa serve l'autorizzazione. In caso contrario, gli utenti riceveranno richieste di autorizzazione senza contesto. In particolare, non avviare un flusso di autenticazione interattivo quando l'app viene lanciata per la prima volta.
Parametri
-
dettagli
Opzioni del flusso WebAuth.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(responseUrl?: string) => void
-
responseUrl
stringa facoltativo
-
Ritorni
-
Promise<string | undefined>
Chrome 106 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive; 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 viene rilevato che un token di accesso non è valido, deve essere passato a removeCachedAuthToken per rimuoverlo dalla cache. L'app potrebbe quindi recuperare un token nuovo con getAuthToken
.
Parametri
-
dettagli
Informazioni sul token.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Ritorni
-
Promise<void>
Chrome 106 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive; 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
boolean
-