L’authentification « social login » via OAuth Google est devenue un standard d’UX en 2026 : les utilisateurs détestent créer des comptes et préfèrent cliquer sur « Continuer avec Google ». Pocketbase intègre nativement les flows OAuth pour Google, GitHub, Apple, Facebook, Microsoft et bien d’autres. Voici le tutoriel pour activer Google OAuth dans une app Pocketbase + frontend (web ou mobile) en 2026.
Voir le guide complet Pocketbase pour les bases.
Étape 1 — Créer un projet Google Cloud
- Aller sur console.cloud.google.com
- Créer un nouveau projet (ex :
monapp-prod) - APIs & Services → OAuth consent screen → External
- Renseigner nom de l’app, email support, logo, domaine, scopes (email, profile)
- Ajouter les domaines autorisés :
api.exemple.sn,app.exemple.sn - APIs & Services → Credentials → Create Credentials → OAuth client ID → Web application
- Authorized redirect URIs :
https://api.exemple.sn/api/oauth2-redirect - Récupérer Client ID et Client Secret
Étape 2 — Configurer Pocketbase
- Dashboard admin Pocketbase → Settings → Auth providers → Google
- Cocher « Enable »
- Coller Client ID et Client Secret obtenus à l’étape 1
- Save
Étape 3 — Frontend JS
import PocketBase from "pocketbase";
const pb = new PocketBase("https://api.exemple.sn");
// Récupérer la liste des providers configurés
const methods = await pb.collection("users").listAuthMethods();
const googleProvider = methods.authProviders.find((p) => p.name === "google");
// Construire l'URL d'autorisation
const redirectUrl = "https://app.exemple.sn/oauth-callback";
const authUrl = googleProvider.authUrl + redirectUrl;
// Rediriger l'utilisateur
window.location.href = authUrl;
Étape 4 — Page de callback
// /oauth-callback page
import PocketBase from "pocketbase";
const pb = new PocketBase("https://api.exemple.sn");
const params = new URLSearchParams(window.location.search);
const code = params.get("code");
const state = params.get("state");
// Récupérer le provider Google
const methods = await pb.collection("users").listAuthMethods();
const provider = methods.authProviders.find((p) => p.name === "google");
// Échanger le code contre une session
const authData = await pb.collection("users").authWithOAuth2Code(
"google",
code,
provider.codeVerifier,
"https://app.exemple.sn/oauth-callback",
);
console.log("Connecté :", authData.record);
window.location.href = "/dashboard";
Étape 5 — Flow simplifié authWithOAuth2
Pour un flow encore plus simple en frontend SPA, le SDK propose authWithOAuth2 qui ouvre un popup et gère tout :
const authData = await pb.collection("users").authWithOAuth2({
provider: "google",
});
if (authData) {
console.log("Connecté :", pb.authStore.model);
}
Étape 6 — Apps mobiles (React Native, Flutter)
Pour les apps mobiles, utilisez un deep link comme redirect URL (monapp://oauth) et un browser tab in-app pour le flow OAuth. Le SDK Pocketbase Flutter et React Native gère ça nativement.
Étape 7 — Email de l’utilisateur
Par défaut Pocketbase crée automatiquement un compte users avec l’email Google de l’utilisateur. Il considère que cet email est déjà vérifié (Google le valide déjà), donc pas d’envoi de mail de vérification.
Si vous avez déjà un compte créé manuellement avec le même email, Pocketbase associe automatiquement les deux à la première connexion OAuth.
Adaptation Afrique de l’Ouest
Le Sign-in with Google fonctionne identiquement depuis tous pays CEDEAO. Pour vos utilisateurs sénégalais ou ivoiriens, c’est même particulièrement utile car beaucoup ont un compte Gmail ou Workspace mais pas forcément un compte dédié à votre app.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| « redirect_uri_mismatch » | URL pas dans Authorized URIs | Ajouter exactement la même URL côté Google Cloud |
| OAuth consent app non vérifiée | Mode test Google par défaut | Soumettre app pour vérification ou rester en test (max 100 users) |
| Popup bloquée | navigator | authWithOAuth2 doit être lancé en réponse à un user gesture (clic) |
| Email non disponible | Scope manquant | Cocher « email » et « profile » dans OAuth consent |