Ce document de référence décrit les méthodes et attributs du client JavaScript que vous pour implémenter Google Sign-In dans vos applications Web.
Si vous rencontrez un problème lors de l'utilisation de la bibliothèque, signalez-le à notre Dépôt GitHub
Configuration de l'authentification
Chargez la bibliothèque de la plate-forme d'API Google pour créer l'objet gapi
:
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
Une fois la bibliothèque de la plate-forme chargée, chargez la bibliothèque auth2
:
function init() {
gapi.load('auth2', function() {
/* Ready. Make a call to gapi.auth2.init or some other API */
});
}
gapi.auth2.init(params)
Initialise l'objet GoogleAuth
. Vous devez appeler cette méthode avant d'appeler les méthodes de gapi.auth2.GoogleAuth
.
Lorsque vous initialisez l'objet GoogleAuth
, vous le configurez avec votre ID client OAuth 2.0 et toute option supplémentaire que vous souhaitez spécifier. Ensuite, si l'utilisateur s'est déjà connecté, l'objet GoogleAuth
restaure l'état de connexion de l'utilisateur de la session précédente.
Arguments | |
---|---|
params |
Objet contenant des paires clé/valeur de données de configuration client. Voir
gapi.auth2.ClientConfig pour les différentes
configurables. Par exemple :
{ client_id: 'CLIENT_ID.apps.googleusercontent.com' } |
Renvoie | |
---|---|
gapi.auth2.GoogleAuth |
L'objet gapi.auth2.GoogleAuth Utilisez le
then() pour obtenir une promesse
qui est résolu à la fin de l'exécution de l'objet gapi.auth2.GoogleAuth
lors de l'initialisation.
|
GoogleAuth.then(onInit, onError)
Elle appelle la fonction onInit lorsque l'objet GoogleAuth
est entièrement
initialisé. Si une erreur est générée lors de l'initialisation (cela peut se produire dans d'anciens navigateurs non compatibles),
la fonction onError sera appelée à la place.
Arguments | |
---|---|
onInit |
La fonction appelée avec l'objet GoogleAuth lorsqu'elle est entièrement
initialisé.
|
onError |
La fonction appelée avec un objet contenant une propriété error
si l'initialisation de GoogleAuth a échoué.
|
Renvoie | |
---|---|
Promise | Une Promise qui est exécutée lorsque onInit
terminée ou rejetée en cas d'erreur d'initialisation. Elle se résout avec le
la valeur renvoyée par la fonction onInit, le cas échéant. |
Codes d'erreur
idpiframe_initialization_failed
-
Échec de l'initialisation d'un iFrame requis à partir de Google, par exemple en raison d'un iFrame
environnement. Une propriété
details
fournira plus d'informations sur l'erreur générée.
gapi.auth2.ClientConfig
Interface représentant les différents paramètres de configuration
gapi.auth2.init
.
Paramètres | ||
---|---|---|
client_id |
string |
Obligatoire. ID client de l'application, trouvé et créé dans la console Google APIs. |
cookie_policy |
string |
Domaines pour lesquels créer des cookies de connexion. Il peut s'agir d'un URI,
single_host_origin ou none . La valeur par défaut est
single_host_origin si non spécifié. |
scope |
string |
Champs d'application à demander, sous forme de chaîne délimitée par des espaces. Facultatif si
fetch_basic_profile n'est pas défini sur "false". |
fetch_basic_profile |
boolean |
Extraire les données des utilisateurs informations de profil générales lorsqu'ils se connectent. Ajoute "profile", "email" et "openid" aux niveaux d'accès demandés. "True" si aucune valeur n'est spécifiée. |
hosted_domain |
string |
Domaine G Suite auquel les utilisateurs doivent appartenir pour se connecter. Ce
est susceptible d'être modifié par les clients. Vérifiez donc bien
domaine hébergé de l'utilisateur renvoyé. Utilisez
GoogleUser.getHostedDomain() sur
le client, et la revendication hd dans le jeton d'ID sur le
pour vérifier que le domaine est bien celui attendu.
<ph type="x-smartling-placeholder"> |
use_fedcm |
boolean |
Facultatif. Valeur par défaut : True . Activer ou désactiver l'utilisation
les API FedCM du navigateur lors de la connexion. |
ux_mode |
string |
Mode d'expérience utilisateur à utiliser pour le flux de connexion. Par défaut, le flux de consentement s'ouvre
dans un pop-up. Les valeurs valides sont popup et redirect . |
redirect_uri |
string |
Si vous utilisez ux_mode='redirect' , ce paramètre vous permet de remplacer
redirect_uri par défaut qui sera utilisé à la fin du flux de consentement. La
la valeur par défaut redirect_uri est l'URL actuelle, sans paramètres de requête ni hachage.
Fragment.
|
enable_granular_consent |
boolean |
Facultatif. Activer ou non
granulaire
autorisations. Si la valeur est false , plus la précision
Les autorisations de compte seront désactivées pour les ID client OAuth créés avant le
2019. Aucun effet pour les ID client OAuth créés pendant ou après 2019, car
des autorisations plus précises
sont toujours activées pour eux.
|
plugin_name |
string |
Facultatif. Si cette valeur est définie, les ID client créés avant juillet
À compter du 29 2022, vous pourrez utiliser l'ancienne bibliothèque Google Platform.
Par défaut, les ID client nouvellement créés ne peuvent plus utiliser
la bibliothèque de la plate-forme et devez utiliser à la place la nouvelle
Bibliothèque de services. Vous pouvez choisir n'importe quelle valeur, un nom descriptif tel que
du produit ou du plug-in est recommandé pour l'identification.
Exemple : plugin_name: 'YOUR_STRING_HERE'
|
Authentification
GoogleAuth
est une classe singleton qui fournit des méthodes permettant à l'utilisateur de se connecter avec un compte Google, d'obtenir son état de connexion actuel, d'obtenir des données spécifiques de son profil Google, de demander des niveaux d'accès supplémentaires et de se déconnecter du compte actuel.
gapi.auth2.getAuthInstance()
Renvoie l'objet GoogleAuth
. Vous devez initialiser l'objet GoogleAuth
avec gapi.auth2.init()
avant d'appeler cette méthode.
Renvoie | |
---|---|
gapi.auth2.GoogleAuth |
L'objet gapi.auth2.GoogleAuth Utilisez cet objet pour appeler
gapi.auth2.GoogleAuth .
|
GoogleAuth.isSignedIn.get()
Indique si l'utilisateur actuel est connecté.
Renvoie | |
---|---|
Booléen |
true si l'utilisateur est connecté ou false si le
l'utilisateur est déconnecté ou l'objet GoogleAuth n'est pas
initialisé.
|
GoogleAuth.isSignedIn.listen(listener)
Écouter les modifications apportées à l'état de connexion de l'utilisateur actuel
Arguments | |
---|---|
listener |
Fonction qui accepte une valeur booléenne. listen() passe
true à cette fonction lorsque l'utilisateur se connecte ; et
false lorsque l'utilisateur se déconnecte.
|
GoogleAuth.signIn()
Connecte l'utilisateur avec les options spécifiées dans gapi.auth2.init()
.
Renvoie | |
---|---|
Promise | Une valeur Promise traitée avec l'instance GoogleUser lorsque le
l'utilisateur s'authentifie et accorde les niveaux d'accès demandés, ou est refusé avec un objet
contenant une propriété error si une erreur s'est produite. Consultez le
pour en savoir plus sur les codes d'erreur. |
Codes d'erreur
Consultez les GoogleAuth.signIn(options)
.
GoogleAuth.signIn(options)
Connecte l'utilisateur à l'aide des options spécifiées.
Arguments | |
---|---|
options |
Soit :
|
Renvoie | |
---|---|
Promise | Une valeur Promise traitée avec l'instance GoogleUser lorsque le
l'utilisateur s'authentifie et accorde les niveaux d'accès demandés, ou est refusé avec un objet
contenant une propriété error si une erreur s'est produite (voir les codes d'erreur ci-dessous). |
Codes d'erreur
popup_closed_by_user
- L'utilisateur a fermé la fenêtre pop-up avant de terminer le processus de connexion.
access_denied
- L'utilisateur a refusé l'autorisation d'accès aux niveaux d'accès requis.
immediate_failed
-
Aucun utilisateur n'a pu être sélectionné automatiquement sans afficher le flux de consentement. Une erreur s'est produite lorsque
à l'aide de
signIn
avec l'optionprompt: 'none'
. Cette option ne doit pas être doit être utilisée, cargapi.auth2.init
connectera automatiquement l'utilisateur si lors d'une session précédente.
gapi.auth2.SignInOptions
Interface représentant les différents paramètres de configuration
GoogleAuth.signIn(options)
.
Paramètres | ||
---|---|---|
prompt |
string |
Force un mode spécifique pour le flux de consentement. Facultatif. Les valeurs possibles sont les suivantes:
|
scope |
string |
Les champs d'application à demander, sous la forme d'une chaîne délimitée par des espaces, en plus des champs d'application définis dans le
Paramètres gapi.auth2.init . Facultatif si fetch_basic_profile n'est pas défini
sur "false".
|
ux_mode |
string |
Mode d'expérience utilisateur à utiliser pour le flux de connexion. Par défaut, le flux de consentement s'ouvre
dans un pop-up. Les valeurs valides sont popup et redirect . |
redirect_uri |
string |
Si vous utilisez ux_mode='redirect' , ce paramètre vous permet de remplacer
redirect_uri par défaut, qui sera utilisé à la fin du consentement
le flux de travail. La valeur par défaut redirect_uri est l'URL actuelle supprimée de la requête.
et le fragment de hachage.
|
GoogleAuth.signOut()
Déconnexion du compte actuel de l'application
Renvoie | |
---|---|
Promise | Promise qui est exécuté lorsque l'utilisateur a été signé.
s'affiche. |
GoogleAuth.disconnect()
Révoque tous les niveaux d'accès accordés par l'utilisateur.
GoogleAuth.grantOfflineAccess(options)
Obtenez l'autorisation de l'utilisateur pour accéder hors connexion aux niveaux d'accès spécifiés.
Arguments | |
---|---|
options |
gapi.auth2.OfflineAccessOptions
contenant des paires clé/valeur de paramètres. Par exemple : { scope: 'profile email' } |
Renvoie | |
---|---|
Promise | Promise qui est exécuté lorsque l'utilisateur accorde le
les champs d'application demandés, en transmettant un objet contenant le code d'autorisation
le gestionnaire de fulfillment de Promise .
Exemple: auth2.grantOfflineAccess().then(function(resp) { var auth_code = resp.code; }); |
Codes d'erreur
popup_closed_by_user
- L'utilisateur a fermé le pop-up avant de terminer le flux de consentement.
access_denied
- L'utilisateur a refusé l'autorisation d'accès aux niveaux d'accès requis.
immediate_failed
-
Aucun utilisateur n'a pu être sélectionné automatiquement sans afficher le flux de consentement. Une erreur s'est produite lorsque
à l'aide de
signIn
avec l'optionprompt: 'none'
. Cette option ne doit pas être doit être utilisée, cargapi.auth2.init
connectera automatiquement l'utilisateur si lors d'une session précédente.
gapi.auth2.OfflineAccessOptions
Interface représentant les différents paramètres de configuration
GoogleAuth.grantOfflineAccess(options)
.
Paramètres | ||
---|---|---|
prompt |
string |
Force un mode spécifique pour le flux de consentement. Facultatif. Les valeurs possibles sont les suivantes:
|
scope |
string |
Les champs d'application à demander, sous la forme d'une chaîne délimitée par des espaces, en plus des champs d'application définis dans le
Paramètres gapi.auth2.init . Facultatif si fetch_basic_profile n'est pas défini
sur "false".
|
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
Associe le flux de connexion au gestionnaire de clics du conteneur spécifié.
Arguments | |
---|---|
container | ID ou référence à l'élément div auquel
associer le gestionnaire de clics. |
options | Objet contenant des paires clé/valeur de paramètres. Voir GoogleAuth.signIn(). |
onsuccess | Fonction à appeler une fois la connexion terminée. |
onfailure | Fonction à appeler en cas d'échec de la connexion. |
Utilisateurs
Un objet GoogleUser
représente un compte utilisateur.
Les objets GoogleUser
sont généralement obtenus en appelant
GoogleAuth.currentUser.get().
GoogleAuth.currentUser.get()
Renvoie un objet GoogleUser
.
qui représente l'utilisateur actuel. Notez que dans une instance nouvellement initialisée,
GoogleAuth
: l'utilisateur actuel n'a pas été défini. Utilisez le
Méthode currentUser.listen()
ou GoogleAuth.then()
pour obtenir une instance GoogleAuth
initialisée.
Renvoie | |
---|---|
GoogleUser |
Utilisateur actuel |
GoogleAuth.currentUser.listen(listener)
Écouter les modifications apportées à currentUser.
Arguments | |
---|---|
listener |
Une fonction qui utilise un paramètre GoogleUser .
listen transmet à cette fonction un GoogleUser .
instance à chaque modification qui modifie currentUser .
|
GoogleUser.getId()
Permet d'obtenir la chaîne d'identifiant unique de l'utilisateur.
Renvoie | |
---|---|
Chaîne | Identifiant unique de l'utilisateur |
GoogleUser.isSignedIn()
Renvoie la valeur "true" si l'utilisateur est connecté.
Renvoie | |
---|---|
Booléen | "True" si l'utilisateur est connecté |
GoogleUser.getHostedDomain()
Obtenez le domaine G Suite de l'utilisateur s'il s'est connecté avec un compte G Suite.
Renvoie | |
---|---|
Chaîne | Le domaine G Suite de l'utilisateur |
GoogleUser.getGrantedScopes()
Permet d'obtenir les niveaux d'accès accordés par l'utilisateur sous forme de chaîne délimitée par des espaces.
Renvoie | |
---|---|
Chaîne | Champs d'application accordés par l'utilisateur |
GoogleUser.getBasicProfile()
Obtenez les informations de base du profil de l'utilisateur.
Renvoie | |
---|---|
gapi.auth2.BasicProfile |
Vous pouvez récupérer les propriétés de gapi.auth2.BasicProfile .
à l'aide des méthodes suivantes:
|
GoogleUser.getAuthResponse(includeAuthorizationData)
Récupérez l'objet de réponse dans la session d'authentification de l'utilisateur.
Arguments | |
---|---|
includeAuthorizationData | Facultatif:Booléen qui spécifie si un jeton d'accès doit toujours être renvoyé et
des niveaux d'accès. Par défaut, le jeton d'accès et les champs d'application demandés ne sont pas renvoyés lorsque
fetch_basic_profile est défini sur "true" (valeur par défaut) et aucun champ d'application supplémentaire n'est
demandée. |
Renvoie | |
---|---|
gapi.auth2.AuthResponse |
Un objet gapi.auth2.AuthResponse . |
GoogleUser.reloadAuthResponse()
Force l'actualisation du jeton d'accès, puis renvoie une promesse pour la nouvelle AuthResponse.
Renvoie | |
---|---|
Promise |
Un Promise qui est traité avec l'état rechargé
gapi.auth2.AuthResponse lors de l'actualisation de la
Le jeton OAuth est terminé.
|
gapi.auth2.AuthResponse
La réponse renvoyée lors de l'appel
GoogleUser.getAuthResponse(includeAuthorizationData)
ou
GoogleUser.reloadAuthResponse()
méthodes.
Propriétés | ||
---|---|---|
access_token |
string |
Jeton d'accès accordé. |
id_token |
string |
Jeton d'ID accordé. |
scope |
string |
Champs d'application autorisés dans le jeton d'accès. |
expires_in |
number |
Nombre de secondes avant l'expiration du jeton d'accès. |
first_issued_at |
number |
Code temporel du moment où l'utilisateur a accordé pour la première fois les champs d'application demandés. |
expires_at |
number |
Horodatage de l'expiration du jeton d'accès. |
GoogleUser.hasGrantedScopes(scopes)
Renvoie "true" si l'utilisateur a accordé les champs d'application spécifiés.
Arguments | |
---|---|
scopes | Chaîne de champs d'application délimitée par des espaces. |
Renvoie | |
---|---|
Booléen | "True" si les niveaux d'accès ont été accordés |
GoogleUser.grant(options)
Demandez des niveaux d'accès supplémentaires à l'utilisateur.
Consultez GoogleAuth.signIn()
pour obtenir la liste des
et le code d'erreur.
GoogleUser.grantOfflineAccess(options)
Obtenez l'autorisation de l'utilisateur pour accéder hors connexion aux niveaux d'accès spécifiés.
Arguments | |
---|---|
options |
gapi.auth2.OfflineAccessOptions
contenant des paires clé/valeur de paramètres. Par exemple : { scope: 'profile email' } |
GoogleUser.disconnect()
Révoque tous les niveaux d'accès accordés par l'utilisateur pour l'application.
Éléments de l'interface utilisateur
gapi.signin2.render(id, options)
Affiche un bouton de connexion dans l'élément associé à l'ID donné à l'aide de la méthode les paramètres spécifiés par l'objet options.
Arguments | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | ID de l'élément dans lequel afficher le bouton de connexion. | ||||||||||||||||
options |
Objet contenant les paramètres à utiliser pour afficher le bouton. Par exemple:
{ scope: 'email', width: 200, height: 50, longtitle: true, theme: 'dark', onsuccess: handleSuccess, onfailure: handleFailure }Vous pouvez spécifier les options suivantes:
|
Avancé
<ph type="x-smartling-placeholder">gapi.auth2.authorized(params, callback)
Effectue une autorisation OAuth 2.0 unique. En fonction des paramètres utilisés, une fenêtre au flux de connexion Google ou essayez de charger la réponse demandée en mode silencieux, sans intervention de l'utilisateur.
Voici quelques cas d'utilisation dans lesquels cette méthode est utile:
- Votre application n'a besoin de demander qu'une seule fois un point de terminaison de l'API Google, par exemple pour charger les vidéos YouTube préférées de l'utilisateur lorsqu'il se connecte pour la première fois.
- Votre application dispose de sa propre infrastructure de gestion des sessions et nécessite uniquement Jeton d'ID une fois pour identifier l'utilisateur dans votre backend.
- Plusieurs ID client sont utilisés sur la même page.
Arguments | |
---|---|
params |
Objet contenant des paires clé/valeur de données de configuration. Voir
gapi.auth2.AuthorizeConfig pour le
différentes propriétés configurables. Par exemple :
{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } |
callback |
Une fonction appelée avec
gapi.auth2.AuthorizeResponse objet
une fois la requête traitée (avec succès ou avec échec).
|
Exemple
gapi.auth2.authorize({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
scope: 'email profile openid',
response_type: 'id_token permission'
}, function(response) {
if (response.error) {
// An error happened!
return;
}
// The user authorized the application for the scopes requested.
var accessToken = response.access_token;
var idToken = response.id_token;
// You can also now use gapi.client to perform authenticated requests.
});
Codes d'erreur
idpiframe_initialization_failed
-
Échec de l'initialisation d'un iFrame requis à partir de Google, par exemple en raison d'un cadre
environnement. Une propriété
details
fournira plus d'informations sur l'erreur générée. popup_closed_by_user
- L'utilisateur a fermé la fenêtre pop-up avant de terminer le processus de connexion.
access_denied
- L'utilisateur a refusé l'autorisation d'accès aux niveaux d'accès requis.
immediate_failed
-
Aucun utilisateur n'a pu être sélectionné automatiquement sans afficher le flux de consentement. Une erreur s'est produite lorsque
à l'aide de
signIn
avec l'optionprompt: 'none'
.
gapi.auth2.AuthorizeConfig
Interface représentant les différents paramètres de configuration
gapi.auth2.authorize
.
Propriétés | ||
---|---|---|
client_id |
string |
Obligatoire. ID client de l'application, trouvé et créé dans la console Google APIs. |
scope |
string |
Obligatoire. Champs d'application à demander, sous forme de chaîne délimitée par des espaces. |
response_type |
string |
Liste de types de réponse séparés par un espace. La valeur par défaut est 'permission' . Les possibilités
sont les suivantes:
<ph type="x-smartling-placeholder">
|
prompt |
string |
Force un mode spécifique pour le flux de consentement. Les valeurs possibles sont les suivantes:
<ph type="x-smartling-placeholder">
|
cookie_policy |
string |
Domaines pour lesquels créer des cookies de connexion. Il peut s'agir d'un URI,
single_host_origin ou none . La valeur par défaut est
single_host_origin si non spécifié.
|
hosted_domain |
string |
Domaine G Suite auquel les utilisateurs doivent appartenir pour se connecter. Il est sensible à la modification par des clients. Vérifiez donc bien la propriété du domaine hébergé de l'utilisateur renvoyé. |
login_hint |
string |
Adresse e-mail ou ID utilisateur d'un utilisateur à présélectionner lors du processus de connexion. Ceci est sensible à
modification par l'utilisateur, sauf si prompt: "none" est utilisé.
|
include_granted_scopes |
boolean |
Demander ou non un jeton d'accès incluant tous les champs d'application précédemment accordés par l'utilisateur
à l'application, ou uniquement aux champs d'application demandés dans l'appel en cours. La valeur par défaut est true .
|
enable_granular_consent |
boolean |
Facultatif. Activer ou non
granulaire
autorisations. Si la valeur est false , plus la précision
Les autorisations de compte seront désactivées pour les ID client OAuth créés avant le
2019. Aucun effet pour les ID client OAuth créés pendant ou après 2019, car
des autorisations plus précises
sont toujours activées pour eux.
|
plugin_name |
string |
Facultatif. S'il est défini, les ID client créés avant le 29 juillet 2022 peuvent utiliser le paramètre
bibliothèque de la plate-forme Google. Par défaut, les nouveaux ID client sont bloqués
d'utiliser la bibliothèque de la plate-forme et devez utiliser la nouvelle version
bibliothèque Identity Services. Vous pouvez choisir n'importe quelle valeur, un nom descriptif
comme le nom du produit ou du plug-in, est recommandé pour faciliter l'identification.
Exemple : plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.AuthorizeResponse
La réponse renvoyée au rappel du
gapi.auth2.authorize
.
Propriétés | ||
---|---|---|
access_token |
string |
Jeton d'accès accordé. Présent uniquement si permission ou token était
spécifié dans response_type .
|
id_token |
string |
Jeton d'ID accordé. Uniquement présente si id_token a été spécifié dans
response_type
|
code |
string |
Code d'autorisation accordé. Uniquement présente si code a été spécifié dans
response_type
|
scope |
string |
Champs d'application autorisés dans le jeton d'accès. Présent uniquement si permission ou
token a été spécifié dans response_type .
|
expires_in |
number |
Nombre de secondes avant l'expiration du jeton d'accès. Présent uniquement si permission
ou token a été spécifié dans response_type .
|
first_issued_at |
number |
Code temporel du moment où l'utilisateur a accordé pour la première fois les champs d'application demandés. Présent uniquement si
permission ou token a été spécifié dans response_type .
|
expires_at |
number |
Horodatage de l'expiration du jeton d'accès. Présent uniquement si permission
ou token a été spécifié dans response_type .
|
error |
string |
En cas d'échec de la requête, code d'erreur. |
error_subtype |
string |
En cas d'échec de la requête, il peut contenir des informations supplémentaires sur le code d'erreur renvoyé. |