Configuration de Google Login
Copiez un prompt de configuration avec les étapes d'installation et le guide markdown complet pour ce plugin.
Introduction
Section intitulée « Introduction »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
Configuration générale
Section intitulée « Configuration générale »Dans cette partie, vous allez configurer l'écran de connexion affiché par Google.
- Veuillez vous rendre sur console.cloud.google.com
- Cliquez sur le sélecteur de projet
- Si vous n'avez pas encore de projet, veuillez créer un nouveau projet.
- Cliquez sur
New project
- Nommez votre projet et cliquez sur
Create
- Assurez-vous d'être sur le bon projet
- Cliquez sur
- Commencez à configurer le
OAuth consent screen-
Cliquez sur la barre de recherche
-
Recherchez
OAuth consent screenet cliquez dessus
-
Configurez l'écran de consentement
Cliquez sur
create
-
- Fill the information about your app
-
Commençons par la
App Information
- Veuillez saisir votre
App Name - Saisissez l'
user support email
-
Vous PEUT ajouter le logo de l'app.
-
Vous DEVRAIT configurer la
App domain
-
Vous DOIT fournir l'e-mail du développeur
-
Cliquez sur
save and continue
- Veuillez saisir votre
-
- Configurer les scopes
-
Cliquez sur
add or remove scopes
-
Sélectionnez les scopes suivants et cliquez
update
-
Cliquez sur
save and continue
-
- Ajouter un utilisateur de test
- Cliquez sur
add users
- Saisissez votre e-mail Google, appuyez sur Entrée, puis cliquez sur
add
- Cliquez sur
save and continue
- Cliquez sur
- Cliquez sur
back to dashboard
- 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 ligne | Accè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 :
-
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.
-
Votre application appellera certaines API Google depuis le client, mais jamais depuis le backend.
Dans ce cas, choisissez l'accès en ligne.
-
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.
-
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.
Exemple de backend pour l'accès en ligne
Section intitulée « Exemple de backend pour l'accès en 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 :
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
À 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 :
-
LowDb (une base de données simple)
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.
Continuez à partir de Google Login Setup
Section intitulée « Continuer après la configuration de Google Login »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.