Cette page de référence décrit l'API des attributs de données HTML de Se connecter avec Google. Vous pouvez utiliser l'API pour afficher l'invite "Un appui" ou le bouton "Se connecter avec Google" sur vos pages Web.
Élément avec l'ID "g_id_onload"
Vous pouvez placer des attributs de données Se connecter avec Google dans n'importe quel élément visible ou invisible, comme <div>
et <span>
. La seule exigence est que l'ID de l'élément soit défini sur g_id_onload
. N'attribuez pas cet ID à plusieurs éléments.
Attributs de données
Le tableau suivant répertorie les attributs de données et leurs descriptions:
Attribut | |
---|---|
data-client_id |
ID client de votre application |
data-auto_prompt |
Afficher le bouton 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 du gestionnaire de jeton d'ID 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 du 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 l'invite. |
data-prompt_parent_id |
ID DOM de l'élément du conteneur de l'invite avec un seul geste |
data-skip_prompt_cookie |
Ignore le mode "Un appui" si la valeur du cookie spécifié n'est pas vide. |
data-nonce |
Chaîne aléatoire pour les jetons d'ID |
data-context |
Le titre et les mots de la requête One Tap |
data-moment_callback |
Nom de la fonction de l'écouteur de notification d'état de l'UI de l'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 d'expérience utilisateur du bouton "Se connecter avec Google" |
data-allowed_parent_origin |
Origines autorisées à intégrer l'iFrame intermédiaire. Le mode "One Tap" s'exécute en mode iframe intermédiaire si cet attribut est présent. |
data-intermediate_iframe_close_callback |
Force le comportement par défaut de l'iframe intermédiaire lorsque les utilisateurs ferment manuellement le service One Tap. |
data-itp_support |
Active l'expérience utilisateur améliorée de l'authentification en un clic sur les navigateurs ITP. |
data-login_hint |
Ignorez la sélection de compte en fournissant un indice utilisateur. |
data-hd |
Limiter la sélection de comptes par domaine |
data-use_fedcm_for_prompt |
Autorisez le navigateur à contrôler les invites de connexion des utilisateurs et à gérer le parcours de connexion entre votre site Web et Google. |
data-enable_redirect_uri_validation |
Activez le flux de redirection de bouton conforme aux Règles de validation des URI de redirection. |
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, qui se trouve et est créé dans la console Google Cloud. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Oui | data-client_id="CLIENT_ID.apps.googleusercontent.com" |
data-auto_prompt
Cet attribut détermine si l'option "Un appui" doit être affichée ou non. La valeur par défaut est true
. Google One Tap ne s'affiche pas lorsque cette valeur est false
. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
booléen | Facultatif | data-auto_prompt="true" |
data-auto_select
Cet attribut détermine si un jeton d'identifiant doit être renvoyé 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 suivant:
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 console API et doit 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 des identifiants 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 qu'une connexion automatique a lieu.
Pour en savoir plus, consultez le tableau suivant:
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" |
Votre point de terminaison de connexion doit gérer les requêtes POST contenant une clé credential
avec une valeur de jeton d'ID dans le corps.
Voici un exemple de requête envoyée à votre point de terminaison de connexion:
POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
credential=ID_TOKEN
data-callback
Il s'agit du nom de la fonction JavaScript qui gère le jeton d'ID renvoyé. Pour en savoir plus, consultez le tableau suivant:
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 composant et de mode UX suivantes:
L'attribut
data-login_uri
est obligatoire pour le mode d'expérience utilisateurredirect
du bouton Se connecter avec Google, qui ignore l'attributdata-callback
.L'un de ces deux attributs doit être défini pour le mode UX
popup
de Google One Tap et du bouton de connexion Google. Si les deux sont définis, l'attributdata-callback
a une priorité plus élevée.
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 utilise le gestionnaire d'identifiants natif en cas d'absence 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 natif du navigateur. Si vous définissez l'attribut data-native_login_uri
ou l'attribut data-native_callback
, la bibliothèque JavaScript utilise le Gestionnaire d'identifiants natif en l'absence 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 suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-native_callback="handlePasswordCredential" |
Les fonctions JavaScript d'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 les identifiants 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 suivant:
Type | Obligatoire | Exemple |
---|---|---|
URL | Facultatif | data-native_id_param="user_id" |
data-native_password_param
Lorsque vous envoyez les identifiants 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 suivant:
Type | Obligatoire | Exemple |
---|---|---|
URL | Facultatif | data-native_password_param="pwd" |
data-cancel_on_tap_outside
Cet attribut indique si la demande de paiement sans contact doit être annulée ou non 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 suivant:
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. Si ce n'est pas le cas, l'invite "Un appui" s'affiche en haut à droite de la fenêtre. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-prompt_parent_id="parent_id" |
data-skip_prompt_cookie
Cet attribut ignore le service One Tap si la valeur du cookie spécifié n'est pas vide. Pour en savoir plus, consultez le tableau suivant:
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'ID pour empêcher les attaques par rejeu. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-nonce="biaqbm70g23" |
La longueur de la nonce est limitée à la taille maximale de JWT prise en charge par votre environnement, ainsi qu'aux contraintes de taille HTTP du navigateur et du serveur individuels.
data-context
Cet attribut modifie le texte du titre et des messages affichés dans l'invite "Un appui". Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-context="use" |
Le tableau suivant répertorie tous les contextes disponibles et leurs descriptions:
Contexte | |
---|---|
signin |
"Se connecter avec Google" |
signup |
"S'inscrire avec Google" |
use |
"Utiliser avec Google" |
data-moment_callback
Cet attribut correspond au nom de la fonction de l'écouteur de notification d'état de l'UI de l'invite. Pour en savoir plus, consultez le type de données PromptMomentNotification
.
Pour en savoir plus, consultez le tableau suivant:
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
.
data-state_cookie_domain
Si vous devez afficher One Tap dans un domaine parent et ses sous-domaines, transmettez le domaine parent à cet attribut afin qu'un seul cookie d'état partagé soit utilisé. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-state_cookie_domain="example.com" |
data-ux_mode
Cet attribut définit le flux d'expérience utilisateur 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 du paiement sans contact. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-ux_mode="redirect" |
Le tableau suivant répertorie les modes d'expérience utilisateur disponibles et leurs descriptions.
Mode UX | |
---|---|
popup |
Effectue le parcours UX de connexion dans une fenêtre pop-up. |
redirect |
Effectue le parcours d'expérience utilisateur de connexion via une redirection de page complète. |
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. 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 leurs descriptions.
Types de valeurs | ||
---|---|---|
string |
Un seul URI de domaine. | "https://example.com" |
string array |
Liste des 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 échoue et s'arrête.
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
). À 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
ethttps://*.co.uk
ne sont pas valides. Comme indiqué ci-dessus,"https://*.example.com"
correspond àexample.com
et à ses sous-domaines. Vous pouvez également utiliser 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 domainesexample1.com
,example2.com
et aux sous-domaines deexample2.com
. - Les domaines génériques doivent commencer par un schéma https:// sécurisé.
"*.example.com"
est donc considéré comme non valide.
data-intermediate_iframe_close_callback
Force le comportement par défaut de l'iframe intermédiaire lorsque les utilisateurs ferment manuellement One Tap en appuyant sur le bouton "X" dans l'interface utilisateur de 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 que dans le mode iframe intermédiaire. Et cela n'a d'impact que sur l'iframe intermédiaire, et non sur l'iframe One Tap. L'interface utilisateur 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 mise à niveau doit être activée sur les navigateurs compatibles avec la prévention intelligente du suivi (ITP). La valeur par défaut est false
. Pour en savoir plus, consultez le tableau suivant:
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 aboutit, 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. Peut être une adresse e-mail ou la valeur du champ sub du jeton d'identification. |
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.
Valeur générique: *
n'offre que des comptes Workspace à l'utilisateur et exclut les comptes grand public (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 parcours 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-enable_redirect_uri_validation
Activez le flux de redirection de bouton conforme aux Règles de validation des URI de redirection.
Type | Obligatoire | Exemple |
---|---|---|
booléen | Facultatif | data-enable_redirect_uri_validation="true" |
Élément de la classe "g_id_signin"
Si vous ajoutez g_id_signin
à l'attribut class
d'un élément, l'élément s'affiche sous la forme d'un bouton Se connecter avec Google.
Vous pouvez afficher plusieurs boutons "Se connecter avec Google" sur une 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 des données visuelles
Le tableau suivant répertorie les attributs de données visuelles et leurs descriptions:
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 elle est définie, cette chaîne est renvoyée avec le jeton d'ID. |
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 suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Oui | data-type="icon" |
Le tableau suivant répertorie tous les types de boutons disponibles et leurs descriptions:
Type | |
---|---|
standard |
|
icon |
data-theme
Thème du bouton. La valeur par défaut est outline
. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-theme="filled_blue" |
Le tableau suivant répertorie les thèmes disponibles et leurs descriptions:
Thème | |
---|---|
outline |
|
filled_blue |
|
filled_black |
Taille des données
Taille du bouton. La valeur par défaut est large
. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-size="small" |
Le tableau suivant répertorie les tailles de bouton disponibles et leurs descriptions.
Taille | |
---|---|
large |
|
medium |
|
small |
data-text
Texte du bouton. La valeur par défaut est signin_with
. Il n'y a aucune différence visuelle pour le texte des boutons d'icônes qui ont des attributs data-text
différents. La seule exception concerne la lecture du texte à des fins d'accessibilité.
Pour en savoir plus, consultez le tableau suivant:
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 |
|
signup_with |
|
continue_with |
|
signin |
data-shape
Forme du bouton. La valeur par défaut est rectangular
. Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-shape="rectangular" |
Le tableau suivant présente les formes de boutons disponibles et leur description:
Forme | |
---|---|
rectangular |
|
pill |
|
circle |
|
square |
data-logo_alignment
L'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 suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-logo_alignment="center" |
Le tableau suivant répertorie les alignements disponibles et leur description:
logo_alignment | |
---|---|
left |
|
center |
data-width
Largeur minimale du bouton, en pixels. La largeur maximale disponible est de 400 pixels.
Pour en savoir plus, consultez le tableau suivant:
Type | Obligatoire | Exemple |
---|---|---|
chaîne | Facultatif | data-width=400 |
data-locale
Facultatif. Affiche le texte du bouton dans la langue spécifiée. Sinon, les paramètres du navigateur ou du compte Google de l'utilisateur sont utilisés par défaut. 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 ce paramètre n'est pas défini, les paramètres régionaux par défaut du navigateur ou les préférences de l'utilisateur de la session Google sont utilisés. Par conséquent, différents utilisateurs peuvent voir différentes versions des boutons localisés, et éventuellement de différentes tailles.
Pour en savoir plus, consultez le tableau suivant:
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 : comme 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'ID afin que vous puissiez identifier le bouton sur lequel l'utilisateur a cliqué pour se connecter.
Pour en savoir plus, consultez le tableau suivant:
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'ID
Le point de terminaison du gestionnaire de jetons d'ID traite le jeton d'ID. 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.
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 du gestionnaire. |
Paramètre de requête | g_csrf_token |
Chaîne identique à la valeur du cookie précédent, g_csrf_token . |
Paramètre de requête | credential |
Jeton d'identification émis par Google. |
Paramètre de requête | select_by |
Mode de sélection des identifiants. |
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'ID se présente comme suit :
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 pour tous les comptes Google et n'est jamais réutilisé. N'utilisez pas l'adresse e-mail comme identifiant, car un compte Google peut avoir plusieurs adresses e-mail à différents moments.
Les champs email
, email_verified
et hd
vous permettent de déterminer si Google héberge une adresse e-mail et s'il est l'autorité compétente. Lorsque Google est l'autorité compétente, l'utilisateur est confirmé comme étant le propriétaire légitime du compte.
Cas où Google est l'autorité compétente:
email
comporte un suffixe@gmail.com
. Il s'agit d'un compte Gmail.- Si
email_verified
est défini sur "true" et quehd
est défini, il s'agit d'un compte Google Workspace.
Les utilisateurs peuvent créer 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 l'autorité compétente. Il est donc recommandé d'utiliser un mot de passe ou d'autres méthodes de défi pour valider l'utilisateur. email_verified
peut également être vrai, 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 l'heure d'expiration pour que vous puissiez valider le jeton côté serveur. Il s'agit d'une heure pour le jeton d'ID obtenu via Se connecter avec Google. Vous devez valider le jeton avant la date d'expiration. N'utilisez pas exp
pour la gestion des sessions. Un jeton d'ID expiré ne signifie pas que l'utilisateur est déconnecté. Votre application est responsable de la gestion des sessions de vos utilisateurs.
select_by
Le tableau suivant présente les valeurs possibles pour le champ select_by
. Le type de bouton utilisé avec la session et l'état du consentement permet 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é détectée, ou l'utilisateur a sélectionné un compte Google et s'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 des types suivants :
Valeur | Description |
---|---|
auto |
Connexion automatique d'un utilisateur avec une session existante qui avait précédemment donné son consentement pour partager des identifiants. S'applique uniquement aux navigateurs non compatibles avec FedCM. |
user |
Un utilisateur disposant d'une session existante qui avait précédemment donné son consentement a appuyé sur le bouton "Continuer en tant que" de la fonctionnalité One Tap pour partager des identifiants. Ne s'applique qu'aux navigateurs non compatibles avec FedCM. |
fedcm |
Un utilisateur a appuyé sur le bouton "Continuer en tant que" de l'authentification par appui unique pour partager des identifiants à l'aide de FedCM. S'applique uniquement aux navigateurs compatibles avec FedCM. |
fedcm_auto |
Connexion automatique d'un utilisateur disposant d'une session existante qui avait précédemment donné son consentement pour partager des identifiants à l'aide de FedCM One Tap. S'applique uniquement aux navigateurs compatibles avec FedCM. |
user_1tap |
Un utilisateur disposant d'une session existante a appuyé sur le bouton "Continuer en tant que" avec un seul geste pour accorder son consentement et partager ses identifiants. S'applique uniquement à la version 75 et aux versions ultérieures de Chrome. |
user_2tap |
Un utilisateur sans session existante a appuyé sur le bouton "Continuer en tant que" avec un appui sur un seul bouton pour sélectionner un compte, puis sur le bouton "Confirmer" dans une fenêtre pop-up pour accorder son consentement et partager ses identifiants. S'applique aux navigateurs autres que Chromium. |
btn |
Un utilisateur disposant d'une session existante qui a précédemment donné son consentement a appuyé sur le bouton "Se connecter avec Google" et sélectionné un compte Google dans "Choisir un compte" pour partager des identifiants. |
btn_confirm |
Un utilisateur disposant d'une session existante a appuyé sur le bouton "Se connecter avec Google", puis sur le bouton "Confirmer" pour donner son consentement et partager ses identifiants. |
btn_add_session |
Un utilisateur qui n'a pas de session active et qui a déjà donné son consentement a appuyé sur le bouton Se connecter avec Google pour sélectionner un compte Google et partager des identifiants. |
btn_confirm_add_session |
Un utilisateur sans session existante a d'abord appuyé sur le bouton Se connecter avec Google pour sélectionner un compte Google, puis sur le bouton Confirmer 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 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 à chaque bouton. 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 que le gestionnaire d'identifiants natif récupère.
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 du gestionnaire. |
Paramètre de requête | g_csrf_token |
Chaîne identique à la valeur du cookie précédent, g_csrf_token . |
Paramètre de requête | email |
Jeton d'identifiant émis par Google. |
Paramètre de requête | password |
Mode de sélection des identifiants. |