Utiliser OAuth avec des comptes Standard contrôlés par votre plateforme
Utilisez le flux de connexion OAuth pour permettre à un utilisateur Stripe de se connecter à votre plateforme.
OAuth n’est pas recommandé pour les nouvelles plateformes Connect. Nous vous recommandons d’utiliser plutôt Connect Onboarding pour les comptes Standard.
Depuis juin 2021, les plateformes utilisant OAuth en read_
ne peuvent plus se connecter à des comptes Standard contrôlés par une autre plateforme.
Les extensions ne connaîtront aucune modification en termes de fonctionnement du flux OAuth. Découvrez plus d’informations sur les modifications d’OAuth pour les comptes Standard contrôlés par des plateformes.
Le flux de connexion OAuth
Un utilisateur se connecte à votre plateforme à l’aide du flux de connexion OAuth suivant :
- À partir d’une page de votre site, l’utilisateur clique sur un lien le redirigeant vers Stripe, indiquant ainsi le
client_
de votre plateforme.id - Sur le site Web de Stripe, l’utilisateur fournit les informations nécessaires pour se connecter à votre plateforme.
- L’utilisateur est redirigé vers votre site, avec un code d’autorisation.
- Votre site envoie alors une requête à l’endpoint de token OAuth pour finaliser la connexion et récupérer l’ID de compte de l’utilisateur.
Note
En tant que plateforme, n’oubliez pas que les données créées pour un compte (les paiements, clients, factures, etc.) seront visibles sur le compte Stripe de l’utilisateur. Cela signifie également que si l’utilisateur connecte d’autres plateformes, ces dernières ont aussi accès aux données.
Créez le lien OAuth
Pour démarrer votre intégration, rendez-vous sur les paramètres de votre plateforme, puis :
- Activez l’inscription des comptes avec OAuth dans les paramètres d’OAuth.
- Copiez votre
client_
, un identifiant généré par Stripe, unique pour votre plateforme.id - Définissez votre
redirect_
, l’URL vers laquelle votre utilisateur sera redirigé une fois connecté à son compte. Vous devez indiquer toutes les URL de redirection dans les paramètres de votre plateforme. Si vous n’intégrez pas le paramètreuri redirect_
dans votre requête, Stripe utilise par défaut la première adresse configurée dans les paramètres de votre plateforme.uri
Stripe propose également un client_
de développement pour faciliter les tests.
Une fois ces paramètres définis, vous pouvez créer le lien OAuth. Nous vous recommandons d’afficher un bouton Connexion avec Stripe dont le rôle sera de diriger les utilisateurs vers l’endpoint authorize_
:
https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_FkyHCg7X8mlvCUdMDao4mMxagUfhIwXb&scope=read_write
L’endpoint Stripe doit recevoir au moins les trois paramètres suivants :
response_
, avec une valeur de codetype - Votre
client_
id scope
, avec une valeur de read_write
Le paramètre scope
définit ce que votre plateforme peut effectuer au nom du compte connecté, read_only étant la valeur par défaut.
Ajoutez le paramètre state
avec un token unique comme valeur afin d’éviter toute attaque CSRF. Nous inclurons le state
fourni lorsque nous redirigerons l’utilisateur vers votre site. Votre site doit confirmer que le paramètre state
n’a pas été modifié.
Voici comment l’URL ci-dessus peut s’afficher pour votre utilisateur lorsqu’il souhaite démarrer la connexion en cliquant sur notre bouton Connexion à Stripe :
Connexion àPersonnaliser l’inscription avec les paramètres OAuth
Vous pouvez modifier le comportement du flux d’inscription en intégrant des paramètres d’URL supplémentaires dans votre lien OAuth. La liste complète des paramètres disponibles est accessible dans la documentation relative à OAuth.
L'utilisateur crée un compte ou se connecte à son compte
Une fois que l’utilisateur a cliqué sur le lien de votre site, il est redirigé vers le site Web de Stripe. Il lui sera alors demandé d’accepter ou de refuser la connexion à votre plateforme.
Le processus de création d’un compte Stripe est intégré à notre flux d’autorisation. Il n’est pas nécessaire de vous demander si vos utilisateurs possèdent déjà un compte ou non.
L’utilisateur est connecté et peut sélectionner un compte pour se connecter directement à votre plateforme.
L’utilisateur doit créer un compte.
L'utilisateur est redirigé vers votre site
Une fois que l’utilisateur a connecté son nouveau compte ou son compte existant à votre plateforme, il est redirigé vers votre site, à l’URL définie comme valeur redirect_
pour votre plateforme.
Pour les connexions réussies, les valeurs suivantes sont transmises dans l’URL :
- Le paramètre
scope
accordé - La valeur
state
, le cas échéant - Un code d’autorisation. Le code d’autorisation est un code éphémère et ne peut être utilisé qu’une seule fois, dans la requête POST décrite à l’étape suivante.
Si l’utilisateur refuse l’autorisation, il est redirigé vers votre site, mais l’URL comprend une erreur au lieu d’un code d’autorisation :
La plateforme finalise la connexion au compte
Intégrez le code
d’autorisation fourni dans une requête POST à l’endpoint de token de Stripe pour finaliser la connexion et récupérer l’ID de compte de l’utilisateur :
Notez que la requête sera effectuée avec votre clé secrète d’API de test ou de production, selon que vous souhaitez obtenir un token d’accès de test ou de production.
Stripe renvoie une réponse incluant l’ID de compte (stripe_
) de l’utilisateur :
{ "token_type": "bearer", "scope": "read_write", "livemode": false, "stripe_user_id":
, }"{{CONNECTED_ACCOUNT_ID}}"
Lorsqu’un problème survient, nous renvoyons plutôt une erreur :
{ "error": "invalid_grant", "error_description": "Authorization code does not exist: {AUTHORIZATION_CODE}" }
Vous avez terminé ! L’utilisateur est désormais connecté à votre plateforme. Conservez le paramètre stripe_
dans votre base de données. Il s’agit de l’ID du compte Stripe du nouveau compte. Vous utiliserez cette valeur pour authentifier celui-ci comme le compte connecté en l’intégrant dans les requêtes dans l’en-tête Stripe-Account
.
Dans votre application, vous pouvez envisager d’utiliser une bibliothèque client OAuth dédiée pour simplifier ces étapes. Pour trouver une bibliothèque OAuth pour votre langue ou cadre, vous pouvez consulter la liste des bibliothèques clients disponible sur le site Web OAuth.
La requête refresh_
peut être utilisée pour générer des tokens d’accès de test pour un client_
de production ou pour renouveler votre token d’accès. Conservez cette valeur, car vous ne pourrez l’obtenir qu’après cette requête POST initiale.
Note
Conservez l’ID de compte reçu ! Les plateformes ont besoin de cette information pour effectuer des requêtes au nom de l’utilisateur.
Accès révoqué et révocation de l’accès
Un événement account.
se produit lorsqu’un utilisateur déconnecte votre plateforme de son compte. En surveillant cet événement via des webhooks, vous pouvez effectuer le nettoyage nécessaire sur vos serveurs.
Pour déconnecter un compte ayant accès au Dashboard Stripe de votre plateforme, entrez votre client_
et l’ID du compte connecté dans le paramètre connect.
:
Vous pouvez utiliser l’API au nom de votre utilisateur pour accepter des paiements, configurer une facturation récurrente, récupérer les données d’un compte, etc.