Aller au contenu

Configuration de Google Login

GitHub

Dans ce guide, vous allez apprendre à configurer Google Login avec Capgo Social Login. Voici ce dont vous avez besoin pour configurer Google Login :

  • 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 Créer
    3. Assurez-vous d'être sur le bon projet Le nom du projet affiché dans le sélecteur indique la sélection correcte du projet
  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 écran de consentement OAuth
    3. Configurer l'écran de consentement

      Cliquez sur create

      Sélection du type d'utilisateur de l'écran de consentement OAuth avec les options Externe et Interne
  5. Renseigner les informations sur votre application
    1. Commençons par la section App Information

      Section « Informations sur l'application » : nom de l'application et e-mail de support utilisateur
      • Veuillez saisir votre App Name
      • Saisissez le user support email
      1. Vous PEUT ajouter le logo de l'app.

        Section d'upload du logo de l'app dans l'é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 À faire fournir l’e-mail du développeur

        Section des coordonnées du développeur avec un 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 Ajouter ou supprimer des scopes dans l’écran de configuration des scopes
    2. Sélectionnez les scopes suivants et cliquez sur update

      Boîte de dialogue de sélection des scopes avec les scopes email et profile sélectionnés
    3. Cliquez save and continue

      Bouton Enregistrer et continuer dans l’écran des scopes
  7. Ajouter un utilisateur de test
    1. Cliquez sur add users Add users button in test users section
    2. Saisissez votre e-mail Google, appuyez sur Entrée, puis cliquez sur add Champ e-mail et bouton Ajouter pour les utilisateurs de test
    3. Cliquez save and continue Bouton Enregistrer et continuer sur l'écran Utilisateurs de test
  8. Cliquez 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 voulez que l'utilisateur se connecte, puis vous lui délivrerez 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 le calendrier 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 cela vous indique si le token est valide ou non et, si c'est le cas, vous renvoie l'e-mail de l'utilisateur. Cela fournit également d'autres informations sur le token de l'utilisateur

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

À partir de là, vous pouvez délivrer votre propre JWT à l'utilisateur ou créer 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 voir facilement 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 des éléments suivants :

  • Un serveur HTTP

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

Le code de cet exemple est disponible ici

Quant au code côté client, 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());
}
}

Notez ce qui manque ici : il n'y a aucun SocialLogin.refresh() appel dans l'application. C'est volontaire. En mode hors ligne Google, le refresh a lieu après que votre backend échange serverAuthCode et stocke le refresh token en toute sécurité.

Si vous utilisez Configuration de Google Login pour planifier les flux d'authentification et de compte, le connecter à Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @capgo/capacitor-social-login @capgo/capacitor-social-login 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-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.