chrome.identity

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

Chrome 84 et versions ultérieures

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

Chrome 105 et versions ultérieures

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

Chrome 84 et versions ultérieures

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 compte SYNC.

ProfileUserInfo

Propriétés

  • adresse 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érieures

    L'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 est false ou omis, getAuthToken renvoie un échec chaque fois qu'une invite est nécessaire.

  • scopes

    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érieures

    Indique 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 sur false, le flux ne s'arrête qu'après la réussite de timeoutMsForNonInteractive. 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 sur true, la fenêtre s'affiche une fois le chargement de la page terminé. Si l'indicateur est false 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 sur false en combinaison avec timeoutMsForNonInteractive pour permettre à la page d'effectuer toutes les redirections.

  • timeoutMsForNonInteractive

    numéro facultatif

    Chrome 113 et versions ultérieures

    Durée maximale, en millisecondes, d'exécution totale de launchWebAuthFlow en mode non interactif. N'a d'effet que si interactive est défini sur false.

  • url

    chaîne

    URL qui lance le flux d'authentification.

Méthodes

clearAllCachedAuthTokens()

Promesse Chrome 87 et versions ultérieures
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érieures

    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.

getAccounts()

Promesse Version en développement
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

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()

Promesse
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

Renvoie

  • Chrome 105 et versions ultérieures

    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.

getProfileUserInfo()

Promesse
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érieures

    Options du profil.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    (userInfo: ProfileUserInfo)=>void

Renvoie

  • Chrome 106 et versions ultérieures

    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.

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()

Promesse
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

  • Options de flux WebAuth.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    (responseUrl?: string)=>void

    • responseUrl

      string facultatif

Renvoie

  • Promesse<string|undefined>

    Chrome 106 et versions ultérieures

    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.

removeCachedAuthToken()

Promesse
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

  • 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érieures

    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.

É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