OAuth 2.0
Authorization Code mit PKCE für Loopback-Clients; Device Authorization Grant für Hosts, die localhost nicht binden können; Austausch unter `/api/oauth/token`, Aufrufe an `/api/v1` mit dem Zugriffstoken.
Drittanbieter- und offizielle Clients verwenden OAuth 2.0. Authorization Code + PKCE ist der Standard für Desktop-Apps, die einen Browser öffnen und auf eine Loopback-Weiterleitung lauschen können. Device Authorization Grant wird verwendet, wenn der Host 127.0.0.1 nicht binden kann (Photoshop UXP). Vertrauliche Clients mit einem client_secret werden für serverseitige Apps unterstützt, die von Eigentümern des Arbeitsbereichs registriert wurden.
Ablauf für öffentliche Clients (Lightroom / Capture One)
1. Plugin opens browser → GET /oauth/authorize?client_id=…&code_challenge=…&redirect_uri=…&scope=…
2. User logs in (if needed) → consent screen (scopes + workspace)
3. Redirect to loopback → ?code=…
4. POST /api/oauth/token (code + code_verifier) → access + refresh tokens
5. API calls → Authorization: Bearer aist_at_…
Desktop-Clients verwenden eine Loopback-Weiterleitung (z. B. http://127.0.0.1:54321/callback), die in der OAuth-Anwendung registriert ist. Öffentliche Clients betten kein client_secret ein.
Device-Code-Ablauf (Photoshop)
1. Plugin POST /api/oauth/device_authorization → device_code + user_code + verification_uri
2. Plugin opens browser → /oauth/device (user enters code, signs in, consents)
3. Plugin polls POST /api/oauth/token (grant_type=urn:ietf:params:oauth:grant-type:device_code)
4. On approval → access + refresh tokens
5. API calls → Authorization: Bearer aist_at_…
Die Installation und den Connect-Ablauf finden Sie unter Photoshop.
Endpunkte
| Methode | Pfad | Funktion |
|---|---|---|
| GET | /oauth/authorize | Einwilligungsseite (Authorization Code + PKCE) |
| GET | /oauth/device | Device-Code-Verifizierung / Einwilligungs-UI |
| POST | /api/oauth/device_authorization | Device Authorization Grant starten |
| POST | /api/oauth/token | Code, device_code oder Aktualisierungstoken austauschen |
| POST | /api/oauth/revoke | Zugriffs- oder Aktualisierungstoken widerrufen |
Plattform- und individuelle Clients
| Ebene | Registrierung durch | Dashboard |
|---|---|---|
| Plattform | Betriebsteam von ArtInStack (Directus oauth_clients) | Der Benutzer sieht die App nach der Einwilligung unter Connected apps |
| Arbeitsbereich | Eigentümer des Arbeitsbereichs | Einstellungen → Entwickler → OAuth-Anwendungen |
Die offiziellen Clients für Lightroom, Capture One und Photoshop verwenden Client-Datensätze im Eigentum der Plattform. Fotografen registrieren diese nicht selbst.
Aktualisierung
Verwenden Sie das Aktualisierungstoken unter /api/oauth/token, bevor das Zugriffstoken abläuft. Serialisieren Sie die Aktualisierung im Client, um Wettlaufsituationen bei gleichzeitigen Uploads zu vermeiden.
