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. Assurez-vous 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 du console Google
    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 avec les options Externe et Intérieur
  5. Remplissez les informations relatives à votre application
    1. Commencez par la App Information

      Section d'informations sur l'application affichant le nom de l'application et le champ d'adresse e-mail de support de l'utilisateur
      • Veuillez saisir votre App Name
      • Saisissez le user support email
      1. You pouvez add the app logo.

        section d'upload du logo de l'application dans l'écran de consentement OAuth
      2. You devez configure the App domain

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

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

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

      Ajoutez ou supprimez le bouton de configuration des étendues
    2. Sélectionnez les étendues suivantes et cliquez update

      Dialogue de sélection d'étendues avec les étendues courrier électronique et profil sélectionnées
    3. Cliquez save and continue

      Bouton Enregistrer et Continuer dans l'écran de configuration des étendues
  7. Ajoutez un utilisateur de test
    1. Cliquez sur add users Bouton Ajouter des utilisateurs dans la section des utilisateurs de test
    2. Entrer votre adresse électronique Google, cliquez sur Entrer, et cliquez add Champ de saisie de l'adresse électronique 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 Retour au tableau de bord du bouton 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
Exige un serveur backend
Jeton d'accès à vie longue
Configuration facile

Si vous n'avez toujours pas compris laquelle choisir, veuillez considérer les scénarios suivants :

  1. Vous souhaitez que l'utilisateur se connecte, immédiatement après vous allez lui délivrer 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 appellera certaines API Google depuis l'arrière-plan, mais uniquement lorsque 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.

Un exemple d'arrière-plan pour l'accès en ligne.

Section intitulée « Un exemple d'arrière-plan pour l'accès en ligne ».

Dans cette partie du tutoriel, je vais montrer comment valider l'utilisateur sur votre arrière-plan.

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 effectivement appeler Google __CAPGO_KEEP_0__’, je vous recommande fortement de jeter un œil à

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

Si vous voulez effectivement appeler Google __CAPGO_KEEP_0__’, je vous recommande fortement de jeter un œil à

Titre de la section : « 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 :

  • 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

As for the client code, il a l'apparence suivante :

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 d'appel dans l'application. C'est intentionnel. En mode hors ligne Google, la mise à jour se produit après que votre serveur échange et stocke le jeton de rafraîchissement de manière sécurisée. SocialLogin.refresh() Continuez de la section de configuration de connexion Google serverAuthCode Sous-titre « Continuez de la section de configuration de connexion Google »

Si vous utilisez la configuration de connexion Google

pour planifier l'authentification et les flux de compte, connectez-l’à

Utilisez @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login pour la capacité native dans Utilisez @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login, __CAPGO_KEEP_0__ Using @capgo/capacitor-social-login for the native capability in Using @capgo/capacitor-social-login, @capgo/capacitor-social-login for the implementation detail in @capgo/capacitor-social-login, @capgo/capacitor-passkey for the implementation detail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.