Aller au contenu

Configuration de Google Login

GitHub

Dans ce guide, vous allez découvrir comment configurer Google Login avec Capgo Social Login. Pour configurer Google Login, vous aurez besoin des éléments suivants :

  • Un compte Google

Dans cette partie, vous allez configurer 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 New Project dans la Google Console
    2. Nommez votre projet et cliquez sur Create Écran de nommage du projet avec le champ de nom et le bouton Create
    3. Assurez-vous d'être sur le bon projet Le nom du projet s'affiche dans le sélecteur, indiquant que le bon projet est sélectionné
  4. Commencez à configurer le OAuth consent screen
    1. Cliquez sur la barre de recherche

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

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

      Cliquez sur create

      Sélection du type d'utilisateur sur l'écran de consentement OAuth avec les options Externe et Interne
  5. Fill the information about your app
    1. Commençons par la App Information

      section App Information affichant les champs App name et User support email
      • Veuillez saisir votre App Name
      • Saisissez l' user support email
      1. Vous PEUT ajouter le logo de l'app.

        Section d'upload du logo de l'app (écran de consentement OAuth)
      2. Vous DEVRAIT configurer la App domain

        section de configuration du domaine de l'application avec le champ des domaines autorisés
      3. Vous DOIT fournir l'e-mail du développeur

        Section des informations de contact du développeur avec champ e-mail
      4. Cliquez sur save and continue

        Bouton Enregistrer et continuer en bas du formulaire
  6. Configurer les scopes
    1. Cliquez sur add or remove scopes

      Bouton pour ajouter ou supprimer des scopes dans l'écran de configuration
    2. Sélectionnez les scopes suivants et cliquez update

      Fenêtre de sélection des scopes avec les scopes e-mail et profil sélectionnés
    3. Cliquez sur save and continue

      Bouton Enregistrer et continuer dans l'écran des scopes
  7. Ajouter un utilisateur de test
    1. Cliquez sur add users Bouton d'ajout d'utilisateurs dans la section test users
    2. Saisissez votre e-mail Google, appuyez sur Entrée, puis cliquez sur add Champ de saisie d'e-mail et bouton d'ajout pour les test users
    3. Cliquez sur save and continue Bouton Enregistrer et continuer sur l'écran des test users
  8. Cliquez sur back to dashboard Bouton Retour au dashboard en bas de la page de fin
  9. Soumettre votre application pour 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 un tableau qui résume les différences entre les deux :

Accès en ligneAccès hors ligne
Nécessite un backend❌✅
Token d'accès longue durée❌✅
Easy setup✅❌

Si vous ne savez toujours pas lequel choisir, voici quelques scénarios à considérer :

  1. Vous souhaitez que l'utilisateur se connecte, afin de lui délivrer immédiatement un JWT personnalisé. Votre application n'appellera PAS les API Google

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

  2. Votre application appellera certaines API Google depuis le client, mais jamais depuis le backend.

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

  3. Votre application appellera certaines API Google depuis le backend, mais uniquement quand l'utilisateur utilise activement l'application.

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

  4. Votre application vérifiera périodiquement l'agenda de l'utilisateur, même lorsque celui-ci n'utilise pas activement l'application

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

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

Cet exemple est très simple et repose sur les technologies suivantes :

Vous pouvez trouver le code pour cet exemple ici

Comme vous pouvez le voir :

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

L'idée est assez simple. Vous envoyez une simple GET requête à https://www.googleapis.com/oauth2/v3/tokeninfo et cela vous indique si le token est valide ou non et, si c'est le cas, vous donne l'e-mail de l'utilisateur. Cela vous donne aussi d'autres infos sur le token utilisateur

Google OAuth Playground affichant la réponse du token avec les détails de l'utilisateur

À partir de là, vous pourriez délivrer votre propre JWT à l'utilisateur ou générer un cookie de session. Les possibilités sont infinies pour l'implémentation finale de l'auth.

Si vous souhaitez appeler les API de Google, je vous recommande vivement de consulter le Google OAuth 2.0 Playground. Vous pourrez ainsi facilement voir quelles API vous pouvez appeler.

Utiliser l'accès offline avec votre propre backend

Section intitulée « Utiliser l'accès offline avec votre propre backend »

Pour utiliser l'accès offline, vous aurez besoin de ce qui suit :

  • Un serveur HTTP

Dans cet exemple, j'utiliserai les technologies suivantes pour permettre l'accès hors ligne dans mon application :

Le code pour cet exemple se trouve ici ici

Quant au client code, il ressemble à ceci :

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());
}
}

Remarquez ce qui manque ici : il n'y a pas d'appel SocialLogin.refresh() dans l'app. C'est intentionnel. En mode hors ligne Google, le rafraîchissement intervient après que votre backend a échangé serverAuthCode et stocké le refresh token de manière sécurisée.

Si vous utilisez Configuration de Google Login pour planifier l'authentification et les flux de comptes, connectez-l’à Utiliser @capgo/capacitor-social-login pour la capacité native dans « Utiliser @capgo/capacitor-social-login », @capgo/capacitor-social-login pour le détail d'implémentation dans @capgo/capacitor-social-login, @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-native-biometric pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation de l'authentification à deux facteurs.