OAuth (Google, GitHub, Apple)
Connexion sociale sans configurer la moindre app OAuth — Mailmus héberge les credentials pour vous.
Zéro configuration côté provider
Vous n'avez aucune app OAuth à créer chez Google, GitHub ou Apple. Mailmus héberge un client OAuth partagé pour chaque provider et le SDK ne parle jamais directement à Google/GitHub/Apple — tout transite par les pages hébergées Mailmus ({hostedPagesURL}/auth/{appId}/oauth/{provider}), qui font l'échange du code et renvoient des tokens Mailmus à votre app.
Il n'y a donc pas de clientId/clientSecret à renseigner nulle part dans votre code ou votre dashboard : seulement le provider à activer.
Activer un provider
App → Authentification → Méthodes de connexion, cliquez sur "Connexion avec Google" (ou GitHub / Apple). Chaque provider activé apparaît automatiquement comme bouton dans <SignIn>/<SignUp> si vous utilisez @mailmus/auth-react, ou via auth.getHostedConfig() si vous construisez votre propre UI avec le SDK brut.
Allowlist de redirection
redirectUri — la page de votre app où l'utilisateur revient après le provider — doit figurer dans App → Authentification → URLs de redirection autorisées. Toute URL absente de cette liste est refusée par le backend, avant même d'atteindre Google/GitHub/Apple.
Avec @mailmus/auth-react
Les boutons OAuth sont intégrés directement dans <SignIn>/<SignUp> dès que redirectUri est fourni :
<SignIn redirectUri="https://votreapp.com/" oauthMode="popup" />oauthMode vaut "redirect" (navigation pleine page, par défaut) ou "popup" (fenêtre pop-up, résout directement avec les tokens sans quitter la page — le composant se charge d'écouter le message).
Avec le SDK brut
// Redirection pleine page — ne résout jamais, navigue la page courante.
await auth.oauth.redirect({ provider: "google", redirectUri });
// Popup — résout avec les tokens dès que le provider a terminé.
const tokens = await auth.oauth.popup({ provider: "google", redirectUri });En mode redirect, appelez auth.oauth.handleRedirectCallback() au chargement de votre page redirectUri pour consommer les tokens renvoyés dans le fragment d'URL (#access_token=...) :
// Sur la page de callback
const tokens = auth.oauth.handleRedirectCallback();
if (tokens) {
// Connecté — le SDK a déjà mis à jour auth.session.getState().
}MFA et OAuth
Si l'utilisateur a activé la double authentification, une connexion OAuth peut renvoyer un défi MFA au lieu de tokens directs — <SignIn> gère ce cas automatiquement. Avec le SDK brut, auth.oauth.popup() et handleRedirectCallback() renvoient directement les tokens (MFA déjà validée en amont côté pages hébergées) ; voir MFA pour le détail du flow.
Suivant
- MFA — double authentification, vérification et inscription.
- Référence API — endpoints
oauth/*.