Wanneer je een externe app verbindt met MoveMentors via OAuth (het meest voorkomende geval: een AI-assistent via MCP), verleen je specifieke permissie-scopes. Dit artikel beschrijft elke scope en wat hij doet.
Het scope-model
MoveMentors OAuth volgt het standaard OAuth 2.1-model met PKCE. Je autoriseert een client (bijv. Claude), die een token ontvangt dat gekoppeld is aan specifieke scopes. Elk verzoek dat de client doet, wordt gevalideerd tegen die scopes.
Als je alleen read:bookings verleent, kan de client alleen boekingen lezen; pogingen om andere tools te gebruiken geven 403 Forbidden.
Je kunt individuele scopes verlenen tijdens de OAuth-toestemmingsflow. Je kunt op elk moment intrekken.
Lees-scopes
read:profile
Lees je eigen gebruikersprofiel (naam, e-mail, accounttype, instellingen).
Vereist door bijna elke client. Door dit te verlenen weet de AI wie je bent; zonder dit kan de assistent niet personaliseren.
read:mentor
Lees je mentor-profiel (bio, foto's, locaties, certificeringen).
Voor mentor-accounts.
read:studio
Lees je studio-profiel.
Voor studio-accounts.
read:classes
Lees de lessen die je host (titel, rooster, capaciteit, prijs, enz.).
read:bookings
Lees je boekingen (zowel als host als als student).
read:clients
Lees je client-CRM (klanten die hebben geboekt, hun geschiedenis, je notities).
read:financials
Lees je inkomsten- en uitgavendashboard. Pro+ functie.
read:reviews
Lees reviews op je profiel en reviews die je hebt achtergelaten.
read:messages
Lees je inbox (aanvragen, mentorberichten).
read:public
Doorzoek de openbare directory (mentors, studio's, lessen). Iedereen kan dit zonder authenticatie gebruiken, maar als geauthenticeerde scope geeft het iets verrijkte data terug (bijv. afstand vanaf je opgeslagen thuislocatie).
Schrijf-scopes
write:profile
Werk je gebruikersprofiel bij (naam, instellingen).
write:mentor / write:studio
Werk je mentor- of studio-profiel bij.
write:classes
Maak, werk bij, verwijder je lessen. Pas roosters, capaciteit, prijzen aan.
Pro+ functie; gratis tier-accounts die deze scope verlenen kunnen nog steeds geen wijzigingen aanbrengen (de tool geeft "upgrade required" terug).
write:bookings
Maak nieuwe boekingen (boeken namens een student), annuleer boekingen, markeer als betaald.
Let op: boekingen hebben beperkingen. Je kunt geen boeking maken voor een uitverkochte les via de API, net zo min als via de UI.
write:clients
Werk klantnotities en tags bij.
write:financials
Maak, werk bij, verwijder uitgaven. Pas categorisering van inkomsten aan. Pro+ functie.
write:reviews
Reageer op reviews op je profiel.
write:messages
Stuur berichten (aanvragen, antwoorden, mentor outreach).
Speciale scopes
mcp:tools
Sta de client toe MCP-tools aan te roepen. Vereist voor MCP-servers; zonder deze weigert het MCP-endpoint verzoeken.
offline_access
Sta de client toe zijn access token te verversen zonder dat jij opnieuw moet autoriseren. Standaard OAuth-scope; zonder deze moet de client elke keer dat het token verloopt (ongeveer 1 uur) opnieuw autoriseren.
De meeste clients vragen hierom, zodat de gebruiker niet constant opnieuw hoeft te autoriseren.
Veelgebruikte scope-bundles
De meeste clients vragen om een zinvolle bundel in plaats van elke scope. Typische bundels:
- Alleen-lezen:
read:profile,read:bookings,read:classes,read:clients. Handig voor "toon mij mijn rooster" use cases. - Persoonlijke assistent: alleen-lezen plus
write:bookings,write:classes,write:messages. De assistent kan je operatie beheren. - Volledige controle: alles behalve
write:financials. Voor power users.
Je kunt specifieke scopes weigeren tijdens het toestemmingsscherm; de client past zich aan (sommige tools zijn niet beschikbaar, maar de rest werkt).
Wat ik kan doen tijdens toestemming
Het OAuth-toestemmingsscherm toont:
- De naam van de client (bijv. "Claude Desktop").
- De website van de client (indien opgegeven).
- Elke scope die de client aanvraagt.
- Een checkbox per scope (sommige zijn voorgevinkt als vereist).
Je kunt:
- Alles goedkeuren (de makkelijke standaard).
- Specifieke scopes uitvinken en de subset goedkeuren.
- Volledig weigeren.
Toegang intrekken
/settings/connected-apps toont elke verbonden OAuth-client op je account. Voor elke client zie je:
- De naam van de client.
- Wanneer hij is geautoriseerd.
- Welke scopes hij heeft.
- Tijdstempel van laatste gebruik.
- Een "Revoke" knop.
Klik op revoke en het token wordt ongeldig. De client verliest direct toegang. Als je dezelfde client later opnieuw autoriseert, begin je opnieuw; geen "onthouden" scopes.
Audit logging
Elk OAuth-verzoek wordt gelogd in je audit log op /settings/audit-log. Zichtbaar:
- Welke client het verzoek heeft gedaan.
- Welke tool is aangeroepen.
- De argumenten (met gevoelige waarden geredacteerd).
- De responsestatus.
Handig wanneer je wilt weten wat een AI-assistent namens jou heeft gedaan.
Wat scopes niet dekken
Een paar dingen die scopes specifiek NIET toestaan, ongeacht de verlening:
- Privégegevens van andere gebruikers lezen. Zelfs met volledige scopes kan een client alleen JOUW data en publieke data van anderen benaderen.
- Uitbetalingen triggeren of Stripe-instellingen aanpassen. Die zitten bij Stripe, niet bij ons.
- Account-instellingen aanpassen die e-mailbevestiging vereisen (je e-mailadres wijzigen, enz.).
Dit is opzettelijk. Sommige acties hebben te grote gevolgen om te delegeren.
Veelgestelde vragen
Kan een client een scope aanvragen die ik niet heb verleend? De client krijgt een 403 op elke tool die een niet-verleende scope vereist. Ze kunnen niet escaleren.
Kan ik zien wat een oude client deed nadat ik die heb ingetrokken? Ja. De audit log bewaart eerdere verzoeken, zelfs van clients die zijn ingetrokken.
Kunnen meerdere clients verbinden met overlappende scopes? Ja. Elke verbonden client heeft zijn eigen token. Je kunt Claude met volledige toegang EN ChatGPT met alleen-lezen hebben.
Is er een manier om te scopen op les of klant (granulairder dan scopes)? Op dit moment niet. Scopes zijn de grens; we ondersteunen geen "alleen boekingen lezen voor les X" of vergelijkbare fijne ACL's. We kunnen dit toevoegen als er vraag naar is.
Waarom is er geen delete:account scope?
Account-verwijdering vereist e-mailbevestiging. Het kan niet via OAuth, zelfs niet met volledige scopes.
Volgende stappen
- MCP-server: de belangrijkste consument van OAuth.
- Verbonden apps: beheer je autorisaties.