Passer à la navigation

Configuration de connexion Google

GitHub

Dans ce guide, vous apprendrez à configurer l'authentification Google avec Capgo Social Login. Vous aurez besoin des éléments suivants pour configurer l'authentification Google :

  • Un compte Google

Dans cette partie, vous configurerez l'écran de connexion affiché par Google.

  1. Veuillez vous rendre sur console.cloud.google.com
  2. Cliquez sur le sélecteur de projet Sélecteur de projet Google Console
  3. Si vous n'avez pas encore de projet, veuillez créer un nouveau projet.
    1. Cliquez sur New project Bouton Nouveau Projet dans Google Console
    2. Nommez votre projet et cliquez Create Écran de nommage du projet montrant le champ de nom et le bouton Créer
    3. Veuillez vous assurer d'être sur le bon projet Nom du projet affiché dans le sélecteur indiquant une sélection de projet correcte
  4. Commencez à configurer le OAuth consent screen
    1. Cliquez sur la barre de recherche

      Barre de recherche de Google Console
    2. Recherchez OAuth consent screen et cliquez dessus

      Résultats de recherche affichant l'option de l'écran de consentement OAuth
    3. Configurez l'écran de consentement

      Cliquez sur create

      Sélection du type d'utilisateur OAuth consentement avec les options Externe et Intérieur
  5. Remplissez les informations sur votre application
    1. Commencez par la App Information

      App Information section showing App name and User support email fields
      • Veuillez saisir votre App Name
      • Entrez le user support email
      1. You DOIT Ajoutez l'icône de l'application.

        App logo upload section in OAuth consent screen
      2. Vous DEVRIEZ configurez App domain

        configure the App domain configuration section with authorized domains field
      3. DEVEZ DOIT fournir l'adresse e-mail du développeur

        Section d'informations de contact du développeur avec champ de courriel
      4. Cliquez sur save and continue

        Enregistrer et Continuer (bouton en bas de la page)
  6. Configurez les autorisations
    1. Cliquez sur add or remove scopes

      Add or remove scopes button in scopes configuration screen
    2. Sélectionnez les champs d'accès suivants et cliquez update

      Dialogue de sélection de portée avec les champs email et profil sélectionnés
    3. Cliquez save and continue

      Save and Continue button in scopes screen
  7. Ajoutez un utilisateur de test
    1. Cliquez sur add users Add users button in test users section
    2. Entrez votre adresse e-mail Google, appuyez sur Entrée, puis cliquez add Champ d'entrée e-mail et bouton Ajouter pour les utilisateurs de test
    3. Cliquez save and continue Save and Continue button in test users screen
  8. Cliquez back to dashboard Retour à la page de tableau de bord en bas de la page de fin
  9. Soumettre votre application pour la vérification

Différences entre l'accès en ligne et l'accès hors ligne

Section intitulée « Différences entre l'accès en ligne et l'accès hors ligne »

Il existe plusieurs façons d'utiliser Google Login avec Capacitor. Voici une table qui résume les différences entre les deux :

Accès en ligneAccès hors ligne
Requiert un serveur backend❌✅
Jet d'accès longue durée❌✅
Easy setup✅❌

Si vous ne savez toujours pas lequel choisir, veuillez considérer les scénarios suivants :

  1. Vous voulez que l'utilisateur se connecte, immédiatement après vous allez lui émettre un JWT personnalisé. Votre application ne fera PAS d'appels aux API Google

    Dans ce cas, choisissez l'accès en ligne.

  2. Votre application fera des appels à certaines API Google depuis le client, mais jamais depuis le serveur

    Dans ce cas, choisissez l'accès en ligne

  3. Votre application fera des appels à certaines API Google depuis le serveur, mais uniquement lorsque l'utilisateur utilise l'application

    In ce cas, choisissez l'accès en ligne

  4. Votre application vérifiera périodiquement l'agenda de l'utilisateur, même lorsqu'il n'utilise pas l'application.

    In ce cas, choisissez l'accès hors ligne

Dans cette partie du tutoriel, je vais montrer comment valider l'utilisateur sur votre backend.

Cet exemple sera très simple et il sera basé sur les technologies suivantes :

Vous pouvez trouver le code pour cet exemple ici

As vous pouvez voir :

VS Code montrant l'authentification Google code qui vérifie les jetons

L'idée est plutôt simple. Vous envoyez une requête simple à GET demande à https://www.googleapis.com/oauth2/v3/tokeninfo and this returns you whether the token is valid or not and if it it is, it gives you the email of the user. It also gives you some other info about the user token

Zone de jeu OAuth Google montrant les informations de réponse de jeton avec les détails de l'utilisateur

From there, you could issue the user with your own JWT or issue some sort of session cookie. The possibilities are endless, for the final auth implementation.

Si vous souhaitez appeler Google API’, je vous recommande fortement de regarder Google OAuth 2.0 PlaygroundEn utilisant l'accès hors ligne avec votre propre backend

En utilisant l'accès hors ligne avec votre propre backend

En utilisant l'accès hors ligne avec votre propre backend

Pour utiliser l'accès hors ligne, vous aurez besoin des éléments suivants :

  • Un serveur HTTP est nécessaire.

Dans cet exemple, je vais utiliser les technologies suivantes pour fournir l'accès hors ligne dans mon application :

La code pour cet exemple peut être trouvée here

Ici vous pouvez trouver le code pour cet exemple : 

import { Capacitor } from '@capacitor/core';
import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';
import { usePopoutStore } from '@/popoutStore'; // <-- specific to my app
const baseURL = "[redacted]";
async function fullLogin() {
await SocialLogin.initialize({
google: {
webClientId: '[redacted]',
iOSClientId: '[redacted]',
iOSServerClientId: 'The same value as webClientId',
mode: 'offline' // <-- important
}
})
const response = await SocialLogin.login({
provider: 'google',
options: {
forceRefreshToken: true // <-- important
}
})
if (response.provider === 'google') {
const result = response.result as GoogleLoginOfflineResponse
const res = await fetch(`${baseURL}/auth/google_offline`, {
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
serverAuthCode: result.serverAuthCode,
platform: Capacitor.getPlatform()
}),
method: "POST"
})
if (res.status !== 200) {
popoutStore.popout("Full google login failed", "check console");
return
}
const { jwt } = await res.json();
const userinfo = await fetch(`${baseURL}/auth/get_google_user`, {
headers: {
Authorization: `Bearer ${jwt}`
}
})
if (userinfo.status !== 200) {
popoutStore.popout("Full google (userinfo) login failed", "check console");
return
}
popoutStore.popout("userinfo res", await userinfo.text());
}
}

Notez ce qui manque ici : il n'y a pas SocialLogin.refresh() appel dans l'application. C'est intentionnel. En mode hors ligne Google, la mise à jour se produit après que votre serveur échange serverAuthCode et stocke le jeton de mise à jour de manière sécurisée.

Si vous utilisez Configuration de connexion Google pour planifier l'authentification et les flux de compte, connectez-l’avec Utilisez @capgo/capacitor-social-login pour la capacité native dans Utilisez @capgo/capacitor-social-login, @capgo/capacitor-connexion-social pour les détails d'implémentation dans @capgo/capacitor-social-login, @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-native-biometrique pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.