chrome.identity

Description

Utilisez 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. Cet identifiant reste inchangé pendant toute la durée de vie du compte.

AccountStatus

Chrome 84 ou version ultérieure

Énumération

"SYNC"
Indique que la synchronisation est activée pour le compte principal.

"N'IMPORTE LEQUEL"
Spécifie l'existence d'un compte principal, le cas échéant.

GetAuthTokenResult

Chrome 105 ou version ultérieure

Propriétés

  • grantedScopes

    string[] facultatif

    Liste des champs d'application OAuth2 accordés à l'extension.

  • jeton

    chaîne facultatif

    Jeton spécifique associé à la requête.

InvalidTokenDetails

Propriétés

  • jeton

    chaîne

    Jeton spécifique à supprimer du cache.

ProfileDetails

Chrome 84 ou version ultérieure

Propriétés

  • accountStatus

    AccountStatus facultatif

    État du compte principal connecté à un profil dont ProfileUserInfo doit être renvoyé. L'état du compte est SYNC par défaut.

ProfileUserInfo

Propriétés

  • e-mail

    chaîne

    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 dans le fichier manifeste n'est pas spécifiée.

  • id

    chaîne

    Identifiant unique du compte. Cet identifiant reste inchangé 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 associée au fichier manifeste n'est pas spécifiée (dans les versions M41 et ultérieures).

TokenDetails

Propriétés

  • compte

    AccountInfo facultatif

    ID du compte dont le jeton doit être renvoyé. Si aucune valeur n'est spécifiée, la fonction utilise le compte du profil Chrome: le compte de synchronisation s'il y en a un ou le premier compte Web Google.

  • enableGranularPermissions

    Booléen facultatif

    Chrome 87 ou version ultérieure

    L'option enableGranularPermissions permet aux extensions d'activer rapidement l'écran de consentement précis des autorisations, 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 peut être obligé de se connecter à Chrome ou d'approuver les champs d'application demandés par l'application. Si l'indicateur interactif est true, getAuthToken invitera l'utilisateur si nécessaire. Lorsque l'indicateur est false 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és 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 la valeur est true (valeur par défaut), le flux se termine immédiatement après le chargement de la page. Si défini sur false, le flux ne se termine qu'après le passage de timeoutMsForNonInteractive. Cette fonctionnalité 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 ou non 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 ait fini de charger une page censée s'afficher.

    Si l'option interactive est définie 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 avec le paramètre timeoutMsForNonInteractive pour permettre à la page d'effectuer d'éventuelles redirections.

  • timeoutMsForNonInteractive

    numéro facultatif

    Chrome 113 et versions ultérieures

    Durée maximale totale, en millisecondes, autorisée pour launchWebAuthFlow de s'exécuter en mode non interactif. N'a d'effet que si la valeur de interactive est false.

  • url

    chaîne

    URL qui lance le flux d'authentification.

Méthodes

clearAllCachedAuthTokens()

<ph type="x-smartling-placeholder"></ph> Promesse Chrome (version 87 ou ultérieure)
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 dans tous les flux d'authentification

Paramètres

  • rappel

    function facultatif

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

    () => void

Renvoie

  • Promesse<void>

    Chrome 106 et versions ultérieures

    Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

getAccounts()

<ph type="x-smartling-placeholder"></ph> 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

    function facultatif

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

    (accounts: AccountInfo[]) => void

Renvoie

  • Promise&lt;AccountInfo[]&gt;

    Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

getAuthToken()

<ph type="x-smartling-placeholder"></ph> 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 champs d'application 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 de jetons gère automatiquement l'expiration.

Pour une expérience utilisateur de qualité, il est important que les requêtes de jetons interactifs soient initié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 votre application est lancée pour la première fois.

Remarque: Lorsqu'elle est appelée avec un rappel, cette fonction renvoie les deux propriétés sous la forme d'arguments distincts transmis au rappel au lieu de renvoyer un objet.

Paramètres

Renvoie

  • Promise&lt;GetAuthTokenResult&gt;

    Chrome 105 ou version ultérieure

    Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

getProfileUserInfo()

<ph type="x-smartling-placeholder"></ph> 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 de fichier manifeste identity.email. Sinon, renvoie un résultat vide.

Cette API se distingue de la méthode "Identity.getAccounts" de deux manières. 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 ou version ultérieure

    Options du profil.

  • rappel

    function facultatif

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

    (userInfo: ProfileUserInfo) => void

Renvoie

  • Promise&lt;ProfileUserInfo&gt;

    Chrome 106 et versions ultérieures

    Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La 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

    chaîne facultatif

    Chemin ajouté à la fin de l'URL générée.

Renvoie

  • chaîne

launchWebAuthFlow()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

Démarre un flux d'authentification à l'URL spécifiée.

Cette méthode active les flux d'authentification avec des fournisseurs d'identité autres que Google en lançant une vue Web et en y accédant à 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 garantir une bonne expérience utilisateur, il est important que les flux d'authentification interactifs soient lancés par l'interface utilisateur de votre application en expliquant à 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 lorsque votre application est lancée pour la première fois.

Paramètres

  • Options de flux WebAuth.

  • rappel

    function facultatif

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

    (responseUrl?: string) => void

    • responseUrl

      chaîne facultatif

Renvoie

  • Promise<chaîne | indéfini>

    Chrome 106 et versions ultérieures

    Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

removeCachedAuthToken()

<ph type="x-smartling-placeholder"></ph> 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 s'avère non 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

    function facultatif

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

    () => void

Renvoie

  • Promesse<void>

    Chrome 106 et versions ultérieures

    Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La 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 change pour un compte sur le profil de l'utilisateur.

Paramètres

  • rappel

    fonction

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

    (account: AccountInfo, signedIn: boolean) => void