Scopes
Demandez le strict nécessaire. L'écran de consentement montre au membre la description ci-dessous, mot pour mot : une longue liste de scopes, c'est une longue liste de raisons de refuser.
Tout ce qui ne figure pas dans cette liste est refusé avec invalid_scope.
/.well-known/oauth-authorization-server et les autres) annoncent exactement
ceux-là dans scopes_supported, et un scope y apparaît le jour où un point de terminaison
commence à le servir.Identité
| Scope | Ce que lit le membre | Disponible |
|---|---|---|
openid | Confirmer qui vous êtes | Oui |
profile | Voir votre nom et votre photo de profil | Oui |
email | Voir votre adresse e-mail | Oui |
Les données du membre
| Scope | Ce que lit le membre | Disponible |
|---|---|---|
me.read | Voir votre profil de base | Oui |
me.reservations.read | Voir vos réservations de courts | Oui |
me.reservations.write | Réserver et annuler des courts pour vous | Oui |
me.purchases.write | Acheter du temps de court pour vous, avec une carte que vous confiez à l'application | Oui, paiement par agent |
me.results.read | Voir vos résultats de matchs | Oui |
me.memberships.read | Voir les clubs dont vous êtes membre | Oui |
Les données d'un club
| Scope | Ce que lit le membre | Disponible |
|---|---|---|
club.read | Voir les informations publiques du club | Oui |
club.members.read | Voir les membres du club | Oui |
club.members.write | Ajouter et modifier les membres du club | Oui |
club.courts.read | Voir les courts du club | Oui |
club.reservations.read | Voir les réservations du club | Oui |
club.reservations.write | Créer et annuler les réservations du club | Oui |
club.checkout.write | Vendre le temps de court du club aux invités qu'amène l'application | Oui, paiement par agent |
club.events.read | Voir les événements du club | Pas encore |
club.shop.orders.read | Voir les commandes de la boutique du club | Pas encore |
Partenaire
Identifiants client uniquement — ces scopes décrivent une application qui agit sans membre présent.
| Scope | Signification | Disponible |
|---|---|---|
partner.members.provision | Créer des membres pour le compte d'un partenaire | Pas encore |
partner.login.handoff | Connecter un membre depuis une application partenaire | Oui |
Qui peut demander quoi
| Client | Peut demander |
|---|---|
| Enregistré par un administrateur de club, ou par nous | openid, profile, email, me.*, club.* |
| Auto-enregistré (dynamique) | openid, profile, email, me.* — jamais les données d'un club |
| Identifiants client | partner.*, club.* — me.* n'a aucun sens sans membre |
club.* exige aussi l'accord du club
Détenir un scope club.* ne signifie pas qu'on a le droit de l'utiliser.
Avant qu'un scope club.* produise le moindre effet, trois parties distinctes doivent avoir
donné leur accord :
- Sporty a validé votre application ;
- l'administrateur du club a accordé ce club à votre application, ainsi que ce scope ;
- le membre (s'il y en a un) a autorisé votre application pour ce club.
Chacune des trois peut se retirer de son côté, à tout moment, et votre accès prend fin à
l'instant même. Si un club ne vous a pas accordé l'accès, les appels répondent
403 access_denied avec un message indiquant qu'un administrateur doit d'abord vous approuver
— ce n'est pas une erreur à réessayer, mais une question à aller poser.
Pour quel club agit un jeton
Vous ne nous l'indiquez jamais dans le corps de la requête ; nous le déduisons de votre client.
- Un client appartenant à un seul club agit toujours pour ce club.
- Un client ayant accès à plusieurs clubs doit en désigner un avec l'en-tête
X-Club. Sans lui, vous obtenez400 club_required. L'en-tête choisit parmi les clubs qui vous ont déjà été accordés — il ne peut pas vous en donner un.
GET /api/partner/v1/clubs/me vous indique pour quel club un jeton agit finalement.