Documentation de référence de l'API HTML Se connecter avec Google

Cette page de référence décrit l'API des attributs de données HTML S'identifier avec Google. Vous pouvez utiliser l'API pour afficher l'invite One Tap ou le bouton "Se connecter avec Google" sur vos pages Web.

Élément avec l'ID "g_id_onload"

Vous pouvez placer les attributs de données S'identifier avec Google dans n'importe quel élément visible ou invisible, tel que <div> et <span>. La seule exigence est que l'ID de l'élément soit défini sur g_id_onload. Ne placez pas cet ID sur plusieurs éléments.

Attributs de données

Le tableau suivant liste les attributs de données et leur description :

Attribut
data-client_id ID client de votre application
data-color_scheme Schéma de couleurs appliqué à l'invite S'inscrire en un clic.
data-auto_prompt Appuyez sur "Afficher Google One".
data-auto_select Active la sélection automatique sur Google One Tap.
data-login_uri URL de votre point de terminaison de connexion
data-callback Nom de la fonction de gestionnaire de jetons d'identité JavaScript
data-native_login_uri URL du point de terminaison de votre gestionnaire d'identifiants de mot de passe
data-native_callback Nom de la fonction de gestionnaire d'identifiants de mot de passe JavaScript
data-native_id_param Nom du paramètre pour la valeur credential.id
data-native_password_param Nom du paramètre pour la valeur credential.password
data-cancel_on_tap_outside Détermine si l'invite doit être annulée si l'utilisateur clique en dehors de celle-ci.
data-prompt_parent_id ID DOM de l'élément conteneur de l'invite S'inscrire en un clic
data-skip_prompt_cookie Ignore One Tap si le cookie spécifié a une valeur non vide.
data-nonce Chaîne aléatoire pour les jetons d'identité
data-context Titre et mots de l'invite One Tap
data-moment_callback Nom de la fonction de l'écouteur de notification d'état de l'UI d'invite
data-state_cookie_domain Si vous devez appeler One Tap dans le domaine parent et ses sous-domaines, transmettez le domaine parent à cet attribut afin qu'un seul cookie partagé soit utilisé.
data-ux_mode Flux UX du bouton "Se connecter avec Google"
data-allowed_parent_origin Origines autorisées à intégrer l'iFrame intermédiaire. One Tap s'exécute en mode iframe intermédiaire si cet attribut est présent.
data-intermediate_iframe_close_callback Remplace le comportement par défaut de l'iFrame intermédiaire lorsque les utilisateurs ferment manuellement l'authentification en un clic.
data-itp_support Active l'expérience utilisateur One Tap améliorée sur les navigateurs ITP.
data-login_hint Ignorer la sélection de compte en fournissant un indice utilisateur
data-hd Limitez la sélection de comptes par domaine.
data-use_fedcm_for_prompt Autorisez le navigateur à contrôler les invites de connexion de l'utilisateur et à gérer le flux de connexion entre votre site Web et Google.
data-use_fedcm_for_button Ce champ détermine si l'expérience utilisateur du bouton FedCM doit être utilisée sur Chrome (version M125+ pour ordinateur et M128+ pour Android). La valeur par défaut est false.
data-button_auto_select Indique si l'option Sélection automatique doit être activée pour le flux du bouton FedCM. Si cette option est activée, les utilisateurs connus disposant d'une session Google active seront automatiquement connectés, sans passer par l'invite du sélecteur de compte. La valeur par défaut est false.

Types d'attributs

Les sections suivantes contiennent des informations sur le type de chaque attribut et un exemple.

data-client_id

Cet attribut correspond à l'ID client de votre application, que vous trouverez et créerez dans la console Google Cloud. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Oui data-client_id="CLIENT_ID.apps.googleusercontent.com"

data-color_scheme

Ce champ correspond au jeu de couleurs appliqué à l'invite S'identifier en un clic. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif. Le jeu de couleurs par défaut du système de l'utilisateur. data-color_scheme="dark"

Le tableau suivant répertorie les schémas de couleurs disponibles et leur description.

Jeu de couleurs
default Appliquez le jeu de couleurs par défaut du système de l'utilisateur, selon que le jeu de couleurs préféré de l'utilisateur est clair ou sombre.
light Appliquez un jeu de couleurs claires.
dark Appliquez un jeu de couleurs sombres.

data-auto_prompt

Cet attribut détermine si l'authentification en un clic doit être affichée ou non. La valeur par défaut est true. L'authentification Google One n'est pas affichée lorsque cette valeur est définie sur false. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
booléen Facultatif data-auto_prompt="true"

data-auto_select

Cet attribut détermine s'il faut renvoyer un jeton d'identité automatiquement, sans interaction de l'utilisateur, si une seule session Google a approuvé votre application. La valeur par défaut est false. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
booléen Facultatif data-auto_select="true"

data-login_uri

Cet attribut correspond à l'URI de votre point de terminaison de connexion.

La valeur doit correspondre exactement à l'un des URI de redirection autorisés pour le client OAuth 2.0 que vous avez configuré dans la plate-forme d'authentification Google. Elle doit également respecter nos règles de validation des URI de redirection.

Cet attribut peut être omis si la page actuelle est votre page de connexion, auquel cas les identifiants sont publiés sur cette page par défaut.

La réponse d'identifiant du jeton d'identité est publiée sur votre point de terminaison de connexion lorsqu'aucune fonction de rappel n'est définie et qu'un utilisateur clique sur les boutons "Se connecter avec Google" ou "One Tap", ou lorsqu'une connexion automatique a lieu.

Votre point de terminaison de connexion doit gérer les requêtes POST contenant un paramètre credential avec une valeur de jeton d'identité dans le corps.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Facultatif Exemple
URL La valeur par défaut est l'URI de la page actuelle ou la valeur que vous spécifiez.
Ignoré lorsque data-ux_mode="popup" et data-callback sont définis.
data-login_uri="https://www.example.com/login"

data-callback

Cet attribut correspond au nom de la fonction JavaScript qui gère le jeton d'identité renvoyé. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Obligatoire si data-login_uri n'est pas défini. data-callback="handleToken"

L'un des attributs data-login_uri et data-callback peut être utilisé. Il dépend des configurations de composants et de mode UX suivantes :

  • L'attribut data-login_uri est obligatoire pour le mode UX du bouton Se connecter avec Google redirect, qui ignore l'attribut data-callback.

  • L'un de ces deux attributs doit être défini pour le mode UX One Tap Google et le bouton Se connecter avec Google popup. Si les deux sont définis, l'attribut data-callback est prioritaire.

Les fonctions JavaScript dans un espace de noms ne sont pas compatibles avec l'API HTML. Utilisez plutôt une fonction JavaScript globale sans espace de noms. Par exemple, utilisez mylibCallback au lieu de mylib.callback.

data-native_login_uri

Cet attribut correspond à l'URL du point de terminaison de votre gestionnaire d'identifiants de mot de passe. Si vous définissez l'attribut data-native_login_uri ou l'attribut data-native_callback, la bibliothèque JavaScript revient au gestionnaire d'identifiants intégré lorsqu'il n'y a pas de session Google. Vous n'êtes pas autorisé à définir à la fois les attributs data-native_callback et data-native_login_uri. Pour en savoir plus, consultez le tableau suivant :

Type Obligatoire Exemple
chaîne Facultatif data-login_uri="https://www.example.com/password_login"

data-native_callback

Cet attribut correspond au nom de la fonction JavaScript qui gère les identifiants de mot de passe renvoyés par le gestionnaire d'identifiants intégré du navigateur. Si vous définissez l'attribut data-native_login_uri ou l'attribut data-native_callback, la bibliothèque JavaScript revient au gestionnaire d'identifiants intégré lorsqu'il n'y a pas de session Google. Vous n'êtes pas autorisé à définir à la fois data-native_callback et data-native_login_uri. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-native_callback="handlePasswordCredential"

Les fonctions JavaScript dans un espace de noms ne sont pas compatibles avec l'API HTML. Utilisez plutôt une fonction JavaScript globale sans espace de noms. Par exemple, utilisez mylibCallback au lieu de mylib.callback.

data-native_id_param

Lorsque vous envoyez l'identifiant de mot de passe au point de terminaison du gestionnaire d'identifiants de mot de passe, vous pouvez spécifier le nom du paramètre pour le champ credential.id. Le nom par défaut est email. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
URL Facultatif data-native_id_param="user_id"

data-native_password_param

Lorsque vous envoyez l'identifiant de mot de passe au point de terminaison du gestionnaire d'identifiants de mot de passe, vous pouvez spécifier le nom du paramètre pour la valeur credential.password. Le nom par défaut est password. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
URL Facultatif data-native_password_param="pwd"

data-cancel_on_tap_outside

Cet attribut permet de déterminer s'il faut annuler la demande One Tap si l'utilisateur clique en dehors de l'invite. La valeur par défaut est true. Pour le désactiver, définissez la valeur sur false. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
booléen Facultatif data-cancel_on_tap_outside="false"

data-prompt_parent_id

Cet attribut définit l'ID DOM de l'élément conteneur. S'il n'est pas défini, l'invite One Tap s'affiche en haut à droite de la fenêtre. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-prompt_parent_id="parent_id"

Utilise un cookie pour contrôler l'affichage de l'invite S'identifier en un clic. Si le cookie spécifié par cet attribut a une valeur non vide, l'invite ne s'affiche pas. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-skip_prompt_cookie="SID"

data-nonce

Cet attribut est une chaîne aléatoire utilisée par le jeton d'identité pour empêcher les attaques par rejeu. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-nonce="biaqbm70g23"

La longueur du nonce est limitée à la taille JWT maximale acceptée par votre environnement, ainsi qu'aux contraintes de taille HTTP individuelles du navigateur et du serveur.

data-context

Ce champ modifie le texte du titre et des messages affichés dans l'invite S'identifier en un clic. Il n'a aucun effet sur les navigateurs ITP. La valeur par défaut est signin.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-context="use"

Le tableau suivant répertorie tous les contextes disponibles et leur description :

Contexte
signin "Se connecter à"
signup "S'inscrire à"
use "Utiliser"

data-moment_callback

Cet attribut correspond au nom de la fonction du listener de notification de l'état de l'UI d'invite. Pour en savoir plus, consultez le type de données PromptMomentNotification.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-moment_callback="logMomentNotification"

Les fonctions JavaScript dans un espace de noms ne sont pas compatibles avec l'API HTML. Utilisez plutôt une fonction JavaScript globale sans espace de noms. Par exemple, utilisez mylibCallback au lieu de mylib.callback.

Si vous devez afficher l'authentification One Tap dans un domaine parent et ses sous-domaines, transmettez le domaine parent à cet attribut afin qu'un seul cookie à état partagé soit utilisé. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-state_cookie_domain="example.com"

data-ux_mode

Cet attribut définit le flux UX utilisé par le bouton "Se connecter avec Google". La valeur par défaut est popup. Cet attribut n'a aucun impact sur l'expérience utilisateur One Tap. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-ux_mode="redirect"

Le tableau suivant répertorie les modes UX disponibles et leur description.

Mode UX
popup Effectue le flux d'expérience utilisateur de connexion dans une fenêtre pop-up.
redirect Effectue le flux d'expérience utilisateur de connexion par redirection pleine page.

data-allowed_parent_origin

Origines autorisées à intégrer l'iFrame intermédiaire. L'authentification One Tap s'exécute en mode iFrame intermédiaire si cet attribut est présent. Pour en savoir plus, consultez le tableau suivant :

Type Obligatoire Exemple
chaîne ou tableau de chaînes Facultatif data-allowed_parent_origin="https://example.com"

Le tableau suivant répertorie les types de valeurs acceptés et leur description.

Types de valeurs
string URI d'un seul domaine. "https://example.com"
string array Liste d'URI de domaine séparés par une virgule. "https://news.example.com,https://local.example.com"

Si la valeur de l'attribut data-allowed_parent_origin n'est pas valide, l'initialisation One Tap du mode iframe intermédiaire échouera et s'arrêtera.

Les préfixes génériques sont également acceptés. Par exemple, "https://*.example.com" correspond à example.com et à ses sous-domaines à tous les niveaux (par exemple, news.example.com, login.news.example.com). Voici quelques points à retenir lorsque vous utilisez des caractères génériques :

  • Les chaînes de format ne peuvent pas être composées uniquement d'un caractère générique et d'un domaine de premier niveau. Par exemple, https://.com et https://.co.uk ne sont pas valides, car "https://.example.com" correspond à example.com et à tous ses sous-domaines. Utilisez une liste séparée par des virgules pour représenter deux domaines différents. Par exemple, "https://example1.com,https://.example2.com" correspond aux domaines example1.com et example2.com, ainsi qu'aux sous-domaines de example2.com.
  • Les domaines génériques doivent commencer par un schéma https:// sécurisé. Par conséquent, "*.example.com" est considéré comme non valide.

data-intermediate_iframe_close_callback

Remplace le comportement par défaut de l 'iFrame intermédiaire lorsque les utilisateurs ferment manuellement One Tap en appuyant sur le bouton X de l'UI One Tap. Le comportement par défaut consiste à supprimer immédiatement l'iFrame intermédiaire du DOM.

Le champ data-intermediate_iframe_close_callback ne prend effet qu'en mode iframe intermédiaire. Il n'a d'impact que sur l'iFrame intermédiaire, et non sur l'iFrame One Tap. L'UI One Tap est supprimée avant l'appel du rappel.

Type Obligatoire Exemple
fonction Facultatif data-intermediate_iframe_close_callback="logBeforeClose"

Les fonctions JavaScript dans un espace de noms ne sont pas compatibles avec l'API HTML. Utilisez plutôt une fonction JavaScript globale sans espace de noms. Par exemple, utilisez mylibCallback au lieu de mylib.callback.

data-itp_support

Ce champ détermine si l' expérience utilisateur One Tap améliorée doit être activée sur les navigateurs compatibles avec la fonctionnalité Intelligent Tracking Prevention (ITP). La valeur par défaut est false. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
booléen Facultatif data-itp_support="true"

data-login_hint

Si votre application sait à l'avance quel utilisateur doit être connecté, elle peut fournir un indice de connexion à Google. Si l'opération réussit, la sélection du compte est ignorée. Les valeurs acceptées sont une adresse e-mail ou un champ sub de jeton d'identité.

Pour en savoir plus, consultez la documentation OpenID Connect pour login_hint.

Type Obligatoire Exemple
Chaîne. Il peut s'agir d'une adresse e-mail ou de la valeur du champ sub du jeton d'identité. Facultatif data-login_hint="elisa.beckett@gmail.com"

data-hd

Lorsqu'un utilisateur possède plusieurs comptes et ne doit se connecter qu'avec son compte Workspace, utilisez cette option pour fournir un indice de nom de domaine à Google. Si l'opération réussit, les comptes utilisateur affichés lors de la sélection du compte sont limités au domaine fourni. Une valeur générique : * ne propose que des comptes Workspace à l'utilisateur et exclut les comptes personnels (user@gmail.com) lors de la sélection du compte.

Pour en savoir plus, consultez la documentation OpenID Connect pour hd.

Type Obligatoire Exemple
Chaîne. Un nom de domaine complet ou *. Facultatif data-hd="*"

data-use_fedcm_for_prompt

Autorisez le navigateur à contrôler les invites de connexion des utilisateurs et à gérer le processus de connexion entre votre site Web et Google. Valeur par défaut : "false". Pour en savoir plus, consultez la page Migrer vers FedCM.

Type Obligatoire Exemple
booléen Facultatif data-use_fedcm_for_prompt="true"

data-use_fedcm_for_button

Ce champ détermine si l'interface utilisateur du bouton FedCM doit être utilisée sur Chrome (version M125+ pour ordinateur et M128+ pour Android). La valeur par défaut est false. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
booléen Facultatif data-use_fedcm_for_button="true"

data-button_auto_select

Ce champ détermine s'il faut activer l'option Sélection automatique pour le flux du bouton FedCM. Si cette option est activée, les utilisateurs connus disposant d'une session Google active seront automatiquement connectés, sans passer par l'invite du sélecteur de compte. La valeur par défaut est false. Vous devez activer explicitement la connexion automatique par bouton lors du lancement de l'activation. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
booléen Facultatif data-button_auto_select="true"

Élément avec la classe "g_id_signin"

Si vous ajoutez g_id_signin à l'attribut class d'un élément, celui-ci s'affiche sous la forme d'un bouton "Se connecter avec Google".

Vous pouvez afficher plusieurs boutons "Se connecter avec Google" sur la même page. Chaque bouton peut avoir ses propres paramètres visuels. Les paramètres sont définis par les attributs de données suivants.

Attributs de données visuelles

Le tableau suivant répertorie les attributs de données visuelles et leur description :

Attribut
data-type Type de bouton : icône ou bouton standard.
data-theme Thème du bouton. (par exemple, filled_blue ou filled_black).
data-size Taille du bouton. Par exemple, petite ou grande.
data-text Texte du bouton. Par exemple, "Se connecter avec Google" ou "S'inscrire avec Google".
data-shape Forme du bouton. (par exemple, rectangulaire ou circulaire).
data-logo_alignment Alignement du logo Google : à gauche ou au centre.
data-width Largeur du bouton, en pixels.
data-locale Le texte du bouton s'affiche dans la langue définie dans cet attribut.
data-click_listener Si elle est définie, cette fonction est appelée lorsque l'utilisateur clique sur le bouton "Se connecter avec Google".
data-state Si cette chaîne est définie, elle est renvoyée avec le jeton d'identité.

Types d'attributs

Les sections suivantes contiennent des informations sur le type de chaque attribut et un exemple.

data-type

Type de bouton. La valeur par défaut est standard. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Oui data-type="icon"

Le tableau suivant répertorie tous les types de boutons disponibles et leur description :

Type
standard
Bouton avec du texte ou des informations personnalisées.
icon
Bouton d'icône sans texte.

data-theme

Thème du bouton. La valeur par défaut est outline. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-theme="filled_blue"

Le tableau suivant répertorie les thèmes disponibles et leur description :

Thème
outline
Bouton standard avec un arrière-plan blanc Bouton d&#39;icône avec un arrière-plan blanc Bouton personnalisé sur fond blanc
Thème de bouton standard.
filled_blue
Bouton standard avec un arrière-plan bleu Bouton d&#39;icône avec un arrière-plan bleu Bouton personnalisé avec un arrière-plan bleu
Thème de bouton bleu.
filled_black
Bouton standard avec un arrière-plan noir Bouton d&#39;icône avec un arrière-plan noir Bouton personnalisé avec un arrière-plan noir
Thème du bouton rempli en noir.

Taille des données

Taille du bouton. La valeur par défaut est large. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-size="small"

Le tableau suivant répertorie les tailles de boutons disponibles et leur description.

Taille
large
Un grand bouton standard Un grand bouton d&#39;icône Un grand bouton personnalisé
Un grand bouton.
medium
Bouton standard de taille moyenne Bouton d&#39;icône de taille moyenne
Bouton de taille moyenne.
small
Un petit bouton de connexion Petit bouton icône
Un petit bouton.

data-text

Texte du bouton. La valeur par défaut est signin_with. Il n'existe aucune différence visuelle pour le texte des boutons d'icône qui ont des attributs data-text différents. La seule exception concerne la lecture du texte pour l'accessibilité de l'écran.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-text="signup_with"

Le tableau suivant répertorie les textes de bouton disponibles et leurs descriptions :

Texte
signin_with
Bouton standard &quot;Se connecter avec Google&quot; Bouton d&#39;icône sans texte visible
Le texte du bouton est "Se connecter avec Google".
signup_with
Bouton standard &quot;S&#39;inscrire avec Google&quot; Bouton d&#39;icône sans texte visible
Le texte du bouton est "S'inscrire avec Google".
continue_with
Bouton standard &quot;Continuer avec Google&quot; Bouton d&#39;icône sans texte visible
Le texte du bouton est "Continuer avec Google".
signin
Un bouton standard intitulé &quot;Se connecter&quot; Bouton d&#39;icône sans texte visible
Le texte du bouton est "Se connecter".

data-shape

Forme du bouton. La valeur par défaut est rectangular. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-shape="rectangular"

Le tableau suivant répertorie les formes de boutons disponibles et leurs descriptions :

Forme
rectangular
Bouton standard rectangulaire Bouton icône rectangulaire Bouton rectangulaire personnalisé
Bouton rectangulaire. S'il est utilisé pour le type de bouton icon, il est identique à square.
pill
Bouton standard en forme de pilule Bouton en forme de pilule Bouton personnalisé en forme de pilule
Bouton en forme de pilule. S'il est utilisé pour le type de bouton icon, il est identique à circle.
circle
Bouton standard circulaire Un bouton d&#39;icône circulaire Bouton circulaire personnalisé
Bouton en forme de cercle. S'il est utilisé pour le type de bouton standard, il est identique à pill.
square
Bouton standard carré Bouton carré Bouton carré personnalisé
Bouton de forme carrée. S'il est utilisé pour le type de bouton standard, il est identique à rectangular.

data-logo_alignment

Alignement du logo Google. La valeur par défaut est left. Cet attribut ne s'applique qu'au type de bouton standard. Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-logo_alignment="center"

Le tableau suivant répertorie les alignements disponibles et leur description :

logo_alignment
left
Bouton standard avec le logo G à gauche
Aligner le logo Google à gauche.
center
Bouton standard avec le logo G au centre
Centre le logo Google.

data-width

Largeur minimale du bouton, en pixels. La largeur maximale disponible est de 400 pixels.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-width=400

data-locale

Facultatif. Affichez le texte du bouton à l'aide des paramètres régionaux spécifiés, sinon utilisez par défaut les paramètres du compte Google ou du navigateur de l'utilisateur. Ajoutez le paramètre hl et le code de langue à la directive src lors du chargement de la bibliothèque, par exemple : gsi/client?hl=<iso-639-code>.

Si elle n'est pas définie, les paramètres régionaux par défaut du navigateur ou la préférence de l'utilisateur de la session Google sont utilisés. Par conséquent, différents utilisateurs peuvent voir différentes versions de boutons localisés, et éventuellement avec des tailles différentes.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-locale="zh_CN"

data-click_listener

Vous pouvez définir une fonction JavaScript à appeler lorsque l'utilisateur clique sur le bouton "Se connecter avec Google" à l'aide de l'attribut data-click_listener.

  <script>
    function onClickHandler(){
      console.log("Sign in with Google button clicked...")
    }
  </script>
  .....
  <div class="g_id_signin"
      data-size="large"
      data-theme="outline"
      data-click_listener="onClickHandler">
  </div>

Dans cet exemple, le message Sign in with Google button clicked... (Bouton "Se connecter avec Google" cliqué...) est consigné dans la console lorsque l'utilisateur clique sur le bouton "Se connecter avec Google".

data-state

Facultatif : étant donné que plusieurs boutons "Se connecter avec Google" peuvent être affichés sur la même page, vous pouvez attribuer une chaîne unique à chaque bouton. La même chaîne est renvoyée avec le jeton d'identité. Vous pouvez ainsi identifier le bouton sur lequel l'utilisateur a cliqué pour se connecter.

Pour en savoir plus, consultez le tableau ci-dessous :

Type Obligatoire Exemple
chaîne Facultatif data-state="button 1"

Intégration côté serveur

Vos points de terminaison côté serveur doivent gérer les requêtes HTTP POST suivantes.

Point de terminaison du gestionnaire de jetons d'identité

Le point de terminaison du gestionnaire de jetons d'identité traite le jeton d'identité. En fonction de l'état du compte correspondant, vous pouvez connecter l'utilisateur et le rediriger vers une page d'inscription ou vers une page d'association de compte pour obtenir des informations supplémentaires.

Exemple de requête envoyée à votre point de terminaison de connexion :

POST /login HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: g_csrf_token=<RANDOM_STRING>
Host: www.example.com

credential=<JWT_ENCODED_ID_TOKEN>&g_csrf_token=<RANDOM_STRING>

La requête HTTP POST contient les informations suivantes :

Format Nom Description
Cookie g_csrf_token Chaîne aléatoire qui change à chaque requête envoyée au point de terminaison de connexion spécifié par data-login_uri. Elle doit correspondre à la valeur du paramètre de requête g_csrf_token.
Paramètre de requête g_csrf_token Chaîne aléatoire qui change à chaque requête envoyée au point de terminaison de connexion spécifié par data-login_uri. Elle doit correspondre à la valeur du cookie g_csrf_token.
Paramètre de requête credential Jeton d'ID JWT encodé émis par Google.
Paramètre de requête select_by Méthode de connexion de l'utilisateur.
Paramètre de requête state Ce paramètre n'est défini que lorsque l'utilisateur clique sur un bouton "Se connecter avec Google" pour se connecter et que l'attribut state du bouton est spécifié.

identifiant

Une fois décodé, le jeton d'identité ressemble à l'exemple suivant :

header
{
  "alg": "RS256",
  "kid": "f05415b13acb9590f70df862765c655f5a7a019e", // JWT signature
  "typ": "JWT"
}
payload
{
  "iss": "https://accounts.google.com", // The JWT's issuer
  "nbf":  161803398874,
  "aud": "314159265-pi.apps.googleusercontent.com", // Your server's client ID
  "sub": "3141592653589793238", // The unique ID of the user's Google Account
  "hd": "gmail.com", // If present, the host domain of the user's GSuite email address
  "email": "elisa.g.beckett@gmail.com", // The user's email address
  "email_verified": true, // true, if Google has verified the email address
  "azp": "314159265-pi.apps.googleusercontent.com",
  "name": "Elisa Beckett",
                            // If present, a URL to user's profile picture
  "picture": "https://lh3.googleusercontent.com/a-/e2718281828459045235360uler",
  "given_name": "Eliza",
  "family_name": "Beckett",
  "iat": 1596474000, // Unix timestamp of the assertion's creation time
  "exp": 1596477600, // Unix timestamp of the assertion's expiration time
  "jti": "abc161803398874def"
}

Le champ sub est un identifiant unique global pour le compte Google. Utilisez uniquement le champ sub comme identifiant de l'utilisateur, car il est unique parmi tous les comptes Google et n'est jamais réutilisé.

Les champs email, email_verified et hd vous permettent de déterminer si Google héberge une adresse e-mail et fait autorité pour celle-ci. Dans les cas où Google fait autorité, il est confirmé que l'utilisateur est le propriétaire légitime du compte.

Cas où Google fait autorité :

  • Si l'adresse e-mail se termine par @gmail.com, il s'agit d'un compte Gmail.email
  • Si email_verified est défini sur "true" et que hd est défini, il s'agit d'un compte Google Workspace.

Les utilisateurs peuvent s'inscrire à des comptes Google sans utiliser Gmail ni Google Workspace. Lorsque email ne contient pas de suffixe @gmail.com et que hd est absent, Google n'est pas une source faisant autorité. Il est recommandé d'utiliser un mot de passe ou d'autres méthodes de validation pour vérifier l'identité de l'utilisateur. email_verified peut également être défini sur "true", car Google a initialement validé l'utilisateur lors de la création du compte Google. Toutefois, la propriété du compte de messagerie tiers peut avoir changé depuis.

Le champ exp indique le délai dont vous disposez pour valider le jeton côté serveur. Il est d'une heure pour le jeton d'ID obtenu à partir de Se connecter avec Google. Vous devez valider le jeton avant son expiration. N'utilisez pas exp pour la gestion des sessions. Un jeton d'identité expiré ne signifie pas que l'utilisateur est déconnecté. Votre application est responsable de la gestion des sessions de vos utilisateurs.

g_csrf_token

Jeton d'état anti-falsification. Il s'agit d'un jeton CSRF (Cross-site request forgery, falsification de requête intersite) créé par la bibliothèque gsi/client. Une valeur aléatoire est incluse à la fois en tant que cookie et en tant que paramètre de requête dans le corps de la charge utile POST. Si ces deux valeurs ne correspondent pas lors du traitement de la requête sur votre serveur, la requête doit être considérée comme non valide.

select_by

Le tableau suivant répertorie les valeurs possibles pour le champ select_by. Le type de bouton utilisé, ainsi que l'état de la session et du consentement, permettent de définir la valeur.

  • L'utilisateur a appuyé sur le bouton One Tap ou Se connecter avec Google, ou a utilisé le processus de connexion automatique sans contact.

  • Une session existante a été trouvée ou l'utilisateur a sélectionné un compte Google et s'y est connecté pour établir une nouvelle session.

  • Avant de partager les identifiants du jeton d'identité avec votre application, l'utilisateur doit

    • a appuyé sur le bouton "Confirmer" pour autoriser le partage des identifiants ; ou
    • avait déjà donné son consentement et utilisé "Sélectionner un compte" pour choisir un compte Google.

La valeur de ce champ est définie sur l'un de ces types.

Valeur Description
auto Connexion automatique d'un utilisateur disposant d'une session existante et ayant précédemment autorisé le partage de ses identifiants. S'applique uniquement aux navigateurs non compatibles avec FedCM.
user Un utilisateur avec une session existante qui avait déjà donné son consentement a appuyé sur le bouton "Continuer en tant que" One Tap pour partager ses identifiants. S'applique uniquement aux navigateurs non compatibles avec FedCM.
fedcm Un utilisateur a appuyé sur le bouton "Continuer en tant que" de l'authentification One Tap pour partager des identifiants à l'aide de FedCM. S'applique uniquement aux navigateurs compatibles avec FedCM.
fedcm_auto Connexion automatique d'un utilisateur avec une session existante qui avait précédemment autorisé le partage d'identifiants à l'aide de FedCM One Tap. S'applique uniquement aux navigateurs compatibles avec FedCM.
user_1tap Un utilisateur avec une session existante a appuyé sur le bouton "Continuer en tant que" de la connexion en un clic pour donner son consentement et partager ses identifiants. S'applique uniquement à Chrome v75 et versions ultérieures.
user_2tap Un utilisateur sans session existante a appuyé sur le bouton "Continuer en tant que" de One Tap pour sélectionner un compte, puis a appuyé sur le bouton "Confirmer" dans une fenêtre pop-up pour donner son consentement et partager ses identifiants. S'applique aux navigateurs non basés sur Chromium.
itp Un utilisateur qui avait déjà donné son consentement a appuyé sur l'authentification en un clic dans les navigateurs ITP.
itp_confirm Un utilisateur qui n'a pas donné son consentement a appuyé sur l'authentification en un clic dans les navigateurs ITP et a appuyé sur le bouton "Continuer" pour donner son consentement et partager ses identifiants.
btn Un utilisateur qui avait précédemment donné son consentement a appuyé sur le bouton "Se connecter avec Google" et a sélectionné un compte Google dans "Choisir un compte" pour partager ses identifiants.
btn_confirm Un utilisateur qui n'a pas donné son consentement a appuyé sur le bouton "Se connecter avec Google", puis sur le bouton "Continuer" pour donner son consentement et partager ses identifiants.

state

Ce paramètre n'est défini que lorsque l'utilisateur clique sur un bouton "Se connecter avec Google" pour se connecter et que l'attribut data-state du bouton sur lequel il a cliqué est spécifié. La valeur de ce champ est identique à celle que vous avez spécifiée dans l'attribut data-state du bouton.

Étant donné que plusieurs boutons "Se connecter avec Google" peuvent être affichés sur la même page, vous pouvez attribuer une chaîne unique à chacun d'eux. Vous pouvez donc utiliser ce paramètre state pour identifier le bouton sur lequel l'utilisateur a cliqué pour se connecter.

Point de terminaison du gestionnaire d'identifiants de mot de passe

Le point de terminaison du gestionnaire d'identifiants de mot de passe traite les identifiants de mot de passe récupérés par le gestionnaire d'identifiants intégré.

La requête HTTP POST contient les informations suivantes :

Format Nom Description
Cookie g_csrf_token Chaîne aléatoire qui change à chaque requête envoyée au point de terminaison de connexion spécifié par data-native_login_uri. Elle doit correspondre à la valeur du paramètre de requête g_csrf_token.
Paramètre de requête g_csrf_token Chaîne aléatoire qui change à chaque requête envoyée au point de terminaison de connexion spécifié par data-native_login_uri. Elle doit correspondre à la valeur du cookie g_csrf_token.
Paramètre de requête email Ce jeton d'identité émis par Google.
Paramètre de requête password Mode de sélection des identifiants.