Aller au contenu principal

Flux OAuth 2.0

Fonctionnalités avancées
  • Retour dans votre interface après connexion : utilisez le paramètre callback_url sur la page de connexion pour rediriger l'utilisateur directement vers votre application une fois le compte connecté.
  • Détection des réponses : le Watcher de réponses surveille automatiquement les réponses aux emails envoyés et déclenche votre webhook.

OAuth 2.0 est le standard d'autorisation déléguée utilisé par Google et Microsoft. Il permet à votre application d'envoyer des emails au nom d'un utilisateur sans jamais connaître son mot de passe.

Pourquoi OAuth ?

Le mot de passe d'un compte Gmail ou Office 365 appartient à l'utilisateur. Il n'a pas à vous le confier — et vous n'avez pas à le stocker.

OAuth résout ce problème élégamment : l'utilisateur autorise votre application en passant par les serveurs de Google ou Microsoft. Ces derniers émettent un jeton d'accès limité (envoi d'emails uniquement) que SendAs.me utilise à la place du mot de passe. L'utilisateur garde le contrôle total et peut révoquer cet accès à tout moment.

Ce que l'utilisateur voit : Une page Google ou Microsoft qui dit : "Mon Application souhaite envoyer des emails en votre nom. Autoriser ?"

Ce que vous obtenez : La capacité d'envoyer des emails depuis son adresse, de façon continue et sécurisée.


Le flux d'autorisation en pratique

Du point de vue de l'utilisateur, c'est identique au bouton "Se connecter avec Google" qu'il connaît déjà.

Étape 1 — L'utilisateur clique sur le lien dans votre interface Vous intégrez un lien dans votre application (ex : "Connecter mon adresse email"). Ce lien pointe vers SendAs.me.

Étape 2 — Redirection vers Google ou Microsoft SendAs.me redirige l'utilisateur vers la page d'autorisation officielle du fournisseur. Votre application et SendAs.me ne sont plus dans la boucle.

Étape 3 — Consentement L'utilisateur voit une page listant les permissions demandées. SendAs.me ne demande que la permission minimale : l'envoi d'emails. Aucun accès en lecture à la boîte de réception.

Étape 4 — Autorisation accordée L'utilisateur accepte. Google ou Microsoft retourne les jetons à SendAs.me.

Étape 5 — Retour dans votre application L'utilisateur est redirigé vers l'URL que vous avez spécifiée. Vous recevez un webhook oauth_connected. Le compte est maintenant actif.


Cycle de vie des jetons

Une fois le compte connecté, vous n'avez rien à faire. SendAs.me gère entièrement le cycle de vie des jetons.

Rafraîchissement automatique : Les jetons d'accès expirent généralement après 1 heure. Avant chaque envoi, SendAs.me vérifie si le jeton est encore valide et le rafraîchit si nécessaire. Votre application ne voit jamais ce processus.

Durée de vie : La connexion reste active tant que l'utilisateur n'a pas révoqué l'accès. Il n'est pas nécessaire de re-connecter le compte régulièrement.

En cas d'envoi simultané : Si votre application envoie plusieurs emails en même temps pour le même utilisateur et que le jeton doit être rafraîchi, SendAs.me gère la synchronisation pour éviter tout conflit. Un seul rafraîchissement est effectué, les autres requêtes attendent le résultat.


Quand l'utilisateur révoque l'accès

L'utilisateur peut révoquer l'autorisation à tout moment depuis son compte :

Ce qui se passe côté SendAs.me :

  • La prochaine tentative d'envoi pour ce compte échoue
  • SendAs.me vous envoie immédiatement un webhook oauth_expired
  • Le compte apparaît avec le statut revoked dans le portail
  • Les tentatives d'envoi suivantes échouent proprement avec un code d'erreur explicite

Ce que vous devez faire : Traiter le webhook oauth_expired pour afficher un message à l'utilisateur dans votre interface, l'invitant à reconnecter son compte.

Exemple de webhook oauth_expired

{
"event": "oauth_expired",
"app_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2025-06-15T10:00:00Z",
"data": {
"credential_id": "cred_xyz789abc",
"email": "alice@gmail.com",
"provider": "gmail",
"reason": "refresh_token_revoked"
}
}

Statuts d'un compte connecté

StatutSignification
activeJeton valide, les emails peuvent être envoyés
expiredJeton expiré, en cours de rafraîchissement automatique
revokedL'utilisateur a révoqué l'accès — reconnexion nécessaire
errorErreur lors du dernier rafraîchissement — vérification manuelle conseillée

Sécurité des jetons

Les jetons OAuth stockés par SendAs.me sont chiffrés au repos. Ils ne sont jamais transmis à votre application ni visibles dans le portail.

En tant qu'éditeur, vous ne voyez que :

  • Le statut du compte (actif, révoqué, etc.)
  • L'adresse email associée
  • La date de connexion et de dernière utilisation

Les jetons bruts restent dans l'infrastructure SendAs.me, protégés par un chiffrement symétrique. Même en cas d'accès non autorisé à la base de données, les jetons ne peuvent pas être utilisés sans la clé de chiffrement.

Ce que vous pouvez dire à vos utilisateurs : "Nous n'avons pas accès à votre mot de passe. L'autorisation que vous avez accordée est gérée par SendAs.me et se limite à l'envoi d'emails. Vous pouvez la révoquer à tout moment depuis votre compte Google ou Microsoft."