Description
Utiliser l'API chrome.identity
pour obtenir des jetons d'accès OAuth2
Autorisations
identity
Types
AccountInfo
Propriétés
-
id
chaîne
Identifiant unique du compte. Il ne changera pas pendant toute la durée de vie du compte.
AccountStatus
Enum
"SYNC"
Indique que la synchronisation est activée pour le compte principal.
ANY
Spécifie l'existence d'un compte principal, le cas échéant.
GetAuthTokenResult
Propriétés
-
grantedScopes
string[] facultatif
Liste des champs d'application OAuth2 accordés à l'extension.
-
jeton
string facultatif
Jeton spécifique associé à la requête.
InvalidTokenDetails
Propriétés
-
jeton
chaîne
Jeton spécifique à supprimer du cache.
ProfileDetails
Propriétés
-
accountStatus
AccountStatus facultatif
État du compte principal connecté à un profil dont le code
ProfileUserInfo
doit être renvoyé. La valeur par défaut est l'état de compteSYNC
.
ProfileUserInfo
Propriétés
-
email
chaîne
L'adresse e-mail du compte utilisateur connecté au profil actuel. Ce champ est vide si l'utilisateur n'est pas connecté ou si l'autorisation
identity.email
du fichier manifeste n'est pas spécifiée. -
id
chaîne
Identifiant unique du compte. Il ne changera pas pendant toute la durée de vie du compte. Ce champ est vide si l'utilisateur n'est pas connecté ou si l'autorisation
identity.email
du fichier manifeste n'est pas spécifiée (à partir de la version M41).
TokenDetails
Propriétés
-
compte
AccountInfo facultatif
ID de compte dont le jeton doit être renvoyé. Si aucune valeur n'est spécifiée, la fonction utilisera un compte du profil Chrome: le compte de synchronisation s'il en existe un, ou le premier compte Web Google.
-
enableGranularPermissions
Booléen facultatif
Chrome 87 et versions ultérieuresL'option
enableGranularPermissions
permet aux extensions d'activer rapidement l'écran de consentement des autorisations précises, dans lequel les autorisations demandées sont accordées ou refusées individuellement. -
interactive
Booléen facultatif
Pour récupérer un jeton, l'utilisateur doit se connecter à Chrome ou approuver les champs d'application demandés par l'application. Si l'indicateur interactif est
true
,getAuthToken
invite l'utilisateur si nécessaire. Si l'indicateur estfalse
ou omis,getAuthToken
renvoie un échec chaque fois qu'une invite est requise. -
champs d'application
string[] facultatif
Liste des champs d'application OAuth2 à demander.
Lorsque le champ
scopes
est présent, il remplace la liste des champs d'application spécifiée dans le fichier manifest.json.
WebAuthFlowDetails
Propriétés
-
abortOnLoadForNonInteractive
Booléen facultatif
Chrome 113 et versions ultérieuresIndique si
launchWebAuthFlow
doit être arrêté pour les requêtes non interactives après le chargement de la page. Ce paramètre n'a pas d'incidence sur les flux interactifs.Si défini sur
true
(par défaut), le flux s'arrête immédiatement après le chargement de la page. Lorsque ce paramètre est défini surfalse
, le flux ne s'arrête qu'après la réussite detimeoutMsForNonInteractive
. Cela est utile pour les fournisseurs d'identité qui utilisent JavaScript pour effectuer des redirections après le chargement de la page. -
interactive
Booléen facultatif
Permet de lancer le flux d'authentification en mode interactif.
Étant donné que certains flux d'authentification peuvent rediriger immédiatement vers une URL de résultat,
launchWebAuthFlow
masque sa vue Web jusqu'à ce que la première navigation redirige vers l'URL finale ou qu'elle termine le chargement d'une page censée s'afficher.Si l'indicateur
interactive
est défini surtrue
, la fenêtre s'affiche une fois le chargement de la page terminé. Si l'indicateur estfalse
ou omis,launchWebAuthFlow
renvoie une erreur si la navigation initiale ne termine pas le flux.Pour les flux qui utilisent JavaScript pour la redirection,
abortOnLoadForNonInteractive
peut être défini surfalse
en combinaison avectimeoutMsForNonInteractive
pour permettre à la page d'effectuer toutes les redirections. -
timeoutMsForNonInteractive
numéro facultatif
Chrome 113 et versions ultérieuresDurée maximale, en millisecondes, d'exécution totale de
launchWebAuthFlow
en mode non interactif. N'a d'effet que siinteractive
est défini surfalse
. -
url
chaîne
URL qui lance le flux d'authentification.
Méthodes
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Réinitialise l'état de l'API Identity:
- Supprime tous les jetons d'accès OAuth2 du cache des jetons
- Supprime les préférences de compte de l'utilisateur
- Annule l'autorisation de l'utilisateur à tous les flux d'authentification
Paramètres
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 106 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Récupère une liste d'objets AccountInfo décrivant les comptes présents dans le profil.
getAccounts
n'est compatible qu'avec la version en développement.
Paramètres
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(accounts: AccountInfo[]) => void
-
comptes
-
Renvoie
-
Promise<AccountInfo[]>
Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Récupère un jeton d'accès OAuth2 à l'aide de l'ID client et des niveaux d'accès spécifiés dans la section oauth2
du fichier manifest.json.
L'API Identity met en cache les jetons d'accès en mémoire. Vous pouvez donc appeler getAuthToken
de manière non interactive chaque fois qu'un jeton est requis. Le cache des jetons gère automatiquement l'expiration.
Pour une expérience utilisateur de qualité, il est important que les requêtes de jetons interactifs soient lancées par l'interface utilisateur de votre application, en expliquant à quoi sert l'autorisation. Dans le cas contraire, vos utilisateurs recevront des demandes d'autorisation ou des écrans de connexion Chrome s'ils ne sont pas connectés, sans contexte. En particulier, n'utilisez pas getAuthToken
de manière interactive lorsque vous lancez votre application pour la première fois.
Remarque: En cas d'appel avec un rappel, au lieu de renvoyer un objet, cette fonction renvoie les deux propriétés sous forme d'arguments distincts transmis au rappel.
Paramètres
-
détails
TokenDetails facultatif
Options de jeton.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(result: GetAuthTokenResult) => void
-
résultatChrome 105 et versions ultérieures
-
Renvoie
-
Promise<GetAuthTokenResult>
Chrome 105 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
Récupère l'adresse e-mail et l'ID GAIA obscurci de l'utilisateur connecté à un profil.
Nécessite l'autorisation identity.email
pour le fichier manifeste. Sinon, renvoie un résultat vide.
Cette API diffère de la méthode Identity.getAccounts, et ce de deux façons. Les informations renvoyées sont disponibles hors connexion et ne s'appliquent qu'au compte principal du profil.
Paramètres
-
détails
ProfileDetails facultatif
Chrome 84 et versions ultérieuresOptions du profil.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(userInfo: ProfileUserInfo) => void
-
userInfo
-
Renvoie
-
Promise<ProfileUserInfo>
Chrome 106 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
Génère une URL de redirection à utiliser dans launchWebAuthFlow
.
Les URL générées correspondent au format https://<app-id>.chromiumapp.org/*
.
Paramètres
-
chemin d'accès
string facultatif
Chemin d'accès ajouté à la fin de l'URL générée.
Renvoie
-
chaîne
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Démarre un flux d'authentification à l'URL spécifiée.
Cette méthode permet les flux d'authentification avec des fournisseurs d'identité autres que Google en lançant une vue Web et en y accédant jusqu'à la première URL du flux d'authentification du fournisseur. Lorsque le fournisseur effectue une redirection vers une URL correspondant au format https://<app-id>.chromiumapp.org/*
, la fenêtre se ferme et l'URL de redirection finale est transmise à la fonction callback
.
Pour une expérience utilisateur de qualité, il est important que les flux d'authentification interactifs soient lancés par l'interface utilisateur de votre application afin d'expliquer à quoi sert l'autorisation. À défaut, vos utilisateurs recevront des requêtes d'autorisation sans contexte. En particulier, ne lancez pas de flux d'authentification interactif lors du premier lancement de votre application.
Paramètres
-
détails
Options de flux WebAuth.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(responseUrl?: string) => void
-
responseUrl
string facultatif
-
Renvoie
-
Promise<string | undefined>
Chrome 106 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
Supprime un jeton d'accès OAuth2 du cache des jetons de l'API Identity.
Si un jeton d'accès n'est pas valide, il doit être transmis à removeCachedAuthToken pour le supprimer du cache. L'application peut ensuite récupérer un nouveau jeton avec getAuthToken
.
Paramètres
-
détails
Informations sur le jeton.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 106 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
Événements
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Déclenché lorsque l'état de connexion d'un compte change dans le profil utilisateur.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(account: AccountInfo, signedIn: boolean) => void
-
compte
-
signedIn
boolean
-