OAuth2 Clients verwalten
OAuth2 Clients
Erstellen und verwalten Sie OAuth2 Clients für den API-Zugriff. Jeder Client erhält individuelle Scopes (Berechtigungen) und kann Token mit 1 Stunde Gültigkeit generieren.
POST /oauth/token
grant_type=client_credentials
Client Credentials Flow
Der OAuth2 Client Credentials Grant (RFC 6749 Section 4.4) für Machine-to-Machine Authentifizierung
Client erstellen
Im Backend unter Tools → xoPort OAuth2 Clients einen neuen Client mit gewünschten Scopes anlegen.
Token anfordern
Mit Client-ID und Secret ein Access-Token vom /oauth/token Endpoint anfordern.
API nutzen
Das Token im Authorization: Bearer Header für alle API-Requests verwenden.
Token anfordern
curl -X POST https://shop.de/xpanel/xoport/oauth/token
-H "Content-Type: application/x-www-form-urlencoded"
-d "grant_type=client_credentials"
-d "client_id=xoc_abc123..."
-d "client_secret=xos_def456..."
Response
{
"access_token": "xoat_eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "products:read products:write categories:read"
}
Verfügbare Scopes
| Scope | Beschreibung | Operationen |
|---|---|---|
products:read |
Produkte lesen | GET |
products:write |
Produkte erstellen/aktualisieren | POST |
products:delete |
Produkte löschen | DELETE |
categories:read |
Kategorien lesen | GET |
categories:write |
Kategorien erstellen/aktualisieren | POST |
categories:delete |
Kategorien löschen | DELETE |
customers:read |
Kunden lesen | GET |
customers:write |
Kunden erstellen/aktualisieren | POST |
customers:delete |
Kunden löschen | DELETE |
manufacturers:read |
Hersteller lesen | GET |
manufacturers:write |
Hersteller erstellen/aktualisieren | POST |
manufacturers:delete |
Hersteller löschen | DELETE |
orders:read |
Bestellungen lesen | GET |
news:read |
News-Artikel lesen | GET |
news:write |
News-Artikel erstellen/aktualisieren | POST |
news:delete |
News-Artikel löschen | DELETE |
newscategories:read |
News-Kategorien lesen | GET |
newscategories:write |
News-Kategorien erstellen/aktualisieren | POST |
newscategories:delete |
News-Kategorien löschen | DELETE |
faq:read |
FAQ lesen | GET |
faq:write |
FAQ erstellen/aktualisieren | POST |
faq:delete |
FAQ löschen | DELETE |
faqcategories:read |
FAQ-Kategorien lesen | GET |
faqcategories:write |
FAQ-Kategorien erstellen/aktualisieren | POST |
faqcategories:delete |
FAQ-Kategorien löschen | DELETE |
Scope-Introspection
Mit dem /me Endpoint können Sie die Scopes des aktuellen Tokens abfragen:
curl -X GET https://shop.de/xpanel/xoport/me
-H "Authorization: Bearer xoat_eyJhbGciOi..."
Response
{
"success": true,
"client_id": "xoc_abc123...",
"client_name": "Mein API Client",
"scopes": ["products:read", "products:write", "categories:read"],
"token_expires_at": "2026-01-26T20:00:00+01:00"
}
IP-Einschränkung (optional)
Seit v2.119.0 Die REST-API verlangt immer einen OAuth2-Token, und es gelten dessen Scopes. Die IP-Freigabe der XML-Schnittstelle (XML_PORT_IP_FILTER) berechtigt nicht zur REST-API.
Zusätzlich können Sie den Zugriff auf feste Adressen beschränken. Ist die Einstellung XOPORT_REST_IP_LIST gefüllt, muss ein Aufruf von einer gelisteten Adresse kommen und einen gültigen Token tragen; die Liste ersetzt den Token nie. Aufrufe von anderen Adressen erhalten 403 mit reason: deny_ip_not_listed.
Sicherheitshinweis
Speichern Sie Client-Secret und Access-Token niemals im Frontend-Code oder in öffentlichen Repositories!