Uwierzytelnianie
Scope’y
Każdy endpoint wymaga scope’a, a token niesie tylko to, co zostało przyznane. Użytkownicy widzą dokładnie te scope’y, o które prosi aplikacja. Proś o minimum, którego potrzebujesz.
Dostępne scope’y
| Scope | Daje dostęp do |
|---|---|
profile:read | Wyświetlana nazwa, nazwa użytkownika, jednostki, płeć, wzrost, cel |
workouts:read | Historia treningów, szczegóły treningu (ćwiczenia i serie), szablony treningów |
records:read | Rekordy życiowe (1RM, ciężar, objętość, powtórzenia, czas trwania, dystans) |
measurements:read | Masa ciała i pomiary obwodów |
stats:read | Serie treningowe, łączny XP i trofea |
splits:read | Własne splity treningowe |
exercises:read | Globalne katalogi ćwiczeń i sprzętu |
API jest dziś tylko do odczytu; nie ma scope’ów zapisu. Dostęp do zapisu pojawi się jako jawnie nowe scope’y, nigdy nie zostanie po cichu doklejony do istniejących.
Egzekwowanie
Scope’y są egzekwowane po stronie serwera przy każdym żądaniu. Wywołanie endpointu, do którego Twój token nie dostał scope’a, zwraca 403 z treścią w formacie problem details:
GET /api/v1/measurements
Authorization: Bearer gat_… (granted: workouts:read stats:read)
HTTP/1.1 403 Forbidden
{
"status": 403,
"title": "Missing scope",
"detail": "This authorization is missing the 'measurements:read' scope."
}Wartości domyślne
| Typ tokena | Domyślne scope’y |
|---|---|
| Token osobisty | Wszystkie scope’y, chyba że zawęzisz je przy tworzeniu. To Twoje własne dane. |
| Aplikacja OAuth | Tylko scope’y zarejestrowane dla Twojej aplikacji i zaakceptowane przez użytkownika. |
| Połączenie MCP | Stały zestaw scope’ów przyznawany przy podłączeniu konta; egzekwowany przy każdym wywołaniu narzędzia. |