Passer à la navigation

Configuration de l'authentification Google

GitHub

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

  • Un compte Google

Configuration générale

Note

Veuillez vous rendre sur

  1. console.cloud.google.com Cliquez sur le sélecteur de projet
  2. console.cloud.google.com 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 sur Create Écran de nommage du projet montrant le champ de nom et le bouton Créer
    3. Assurez-vous d'être sur le bon projet Nom de 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 Google Console
    2. Recherchez et cliquez sur 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

      Sélection du type d'utilisateur de l'écran de consentement OAuth avec les options Externe et Intérieur create

      Remplissez les informations sur votre application
  5. Commencez par là
    1. Renseignez les informations sur votre application App Information

      Section d'informations sur l'application affichant les champs Nom de l'application et Adresse e-mail de support de l'utilisateur
      • Veuillez saisir votre App Name
      • Entrez le user support email
      1. Vous Pouvez ajoutez l'icône de l'application.

        Section d'importation de l'icône d'application dans l'écran de consentement OAuth
      2. Vous DEVRIEZ configurer la App domain

        Section de configuration de domaine de l'application avec le champ de domaines autorisés
      3. Vous DEVEZ fournir l'adresse e-mail du développeur

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

        bouton Enregistrer et Continuer en bas de la page
  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 update

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

      Bouton Enregistrer et Continuer dans l'écran de portées
  7. Ajouter un utilisateur de test
    1. Cliquez sur add users Bouton Ajouter des utilisateurs dans la section utilisateurs de test
    2. Entrer votre adresse email Google, cliquez sur Entrer, puis cliquez add Champ d'entrée de l'adresse email et bouton Ajouter pour les utilisateurs de test
    3. Cliquez save and continue Bouton Enregistrer et Continuer dans l'écran des utilisateurs de test
  8. Cliquez back to dashboard Bouton Retour au tableau de bord en bas de la page de fin
  9. Soumettez 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
Exige un backend
Long-lived access token
Configuration facile

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

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

    Votre application fera appel à certaines API Google depuis le client, mais jamais depuis le serveur

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

    Votre application fera appel à certaines API Google depuis le serveur, mais uniquement lorsque l'utilisateur utilise l'application activement

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

    Vous voulez que l'utilisateur se connecte, immédiatement après vous allez lui émettre un JWT personnalisé. Votre application fera appel à certaines API Google depuis le client, mais jamais depuis le serveur

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

    Dans 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

Comme vous pouvez le 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 et cela vous retourne si le jeton est valide ou non et si c'est le cas, il vous donne l'adresse e-mail de l'utilisateur. Il vous donne également quelques autres informations sur le jeton de l'utilisateur https://www.googleapis.com/oauth2/v3/tokeninfo Google OAuth Playground montrant les informations de réponse du jeton avec les détails de l'utilisateur

À partir de là, vous pourriez délivrer au utilisateur votre propre JWT ou délivrer une sorte de cookie de session. Les possibilités sont infinies, pour la mise en œuvre d'authentification finale.

Si vous voulez appeler Google __CAPGO_KEEP_0__’, je vous recommande fortement de regarder

If you do want to call Google API’s, I would strongly recommend looking at . À partir de là, vous pouvez facilement voir quels APIs vous pouvez appeler.Utilisation de l'accès hors ligne avec votre propre backend

Section intitulée “Utilisation de l'accès hors ligne avec votre propre backend”

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

Google OAuth 2.0 Playground

  • Un serveur HTTP

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

Le code pour cet exemple peut être trouvé ici

En ce qui concerne le 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());
}
}

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

Si vous utilisez Google Login Setup pour planifier l'authentification et les flux de compte, connectez-le avec Utilisation de @capgo/capacitor-social-login pour la capacité native dans Utilisation de @capgo/capacitor-social-login, @capgo/capacitor-social-login pour le détail 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 dans Authentification à deux facteurs.