aYOUne

CORS & Auth

Wenn du aus einer Browser-App heraus die aYOUne-API ansprichst, brauchst du sowohl korrektes CORS-Setup als auch ein durchdachtes Token-Lifecycle-Modell. Beides ist hier zusammengefasst.

CORS-Verhalten

Per Default akzeptieren die Module-APIs nur Origins, die in der Customer-Konfiguration unter aYOUneCustomers.allowedOrigins[] registriert sind. Trag deinen Frontend-Origin dort ein:

ay update ayounecustomers <customerId> \
  --set allowedOrigins='["https://app.firma.tld","https://staging.firma.tld"]'

Wildcards (*.firma.tld) sind unterstützt. Auf Self-Hosted-Instanzen kannst du via Umgebungsvariable CORS_ORIGIN_OVERRIDE zusätzlich global öffnen — siehe Environment Variables.

JWT-Lifecycle

aYOUne arbeitet mit zwei Tokens:

Token TTL Zweck
Access-Token 15 min Bei jedem API-Call mitgeschickt
Refresh-Token 30 Tage Holt neue Access-Tokens

Access-Token erneuern

Erkennst du an einem Response mit 401, dass der Access-Token abgelaufen ist, hol dir den neuen via:

curl -X POST https://auth.ayoune.app/refresh \
  -H "Content-Type: application/json" \
  -d '{"refreshToken":"<refresh>"}'

Antwort: neues payload.token + neuer payload.refreshToken (Token-Rotation).

Logout & Revocation

curl -X POST https://auth.ayoune.app/logout \
  -H "Authorization: Bearer $TOKEN"

Logout setzt den Refresh-Token in die Blacklist. Access-Tokens laufen ohnehin in 15 min aus — wer höhere Sicherheit braucht, kann sie via ay storage set token schon vorher invalidieren.

Service-Token (Server-zu-Server)

Für Backend-Integrationen (z.B. dein ERP holt nachts Stündliche), nutze Service-Tokens:

ay create credentials "ERP-Sync" \
  --type service-account \
  --rights '["consumers.view","consumers.create"]'

Service-Tokens haben kein Refresh — du rotierst sie aktiv via ay credentials refresh <id>. Sie sind im Audit-Log als Aktor service:<name> zu erkennen.

SameSite & Cookies

aYOUne speichert Tokens nicht in Cookies — die Plattform vertraut auf Authorization-Header. Wenn du in einer SPA arbeitest, leg den Access-Token im Speicher (z.B. sessionStorage) ab, nie im localStorage. Refresh-Tokens gehören ausschließlich in HttpOnly + Secure + SameSite=Strict Cookies, falls du sie browserseitig hältst.

Multi-Tenant Customer-Switch

Ein User kann mehreren Customers angehören. Wechsle innerhalb derselben JWT-Session via:

curl -X GET "https://auth.ayoune.app/changecustomer?customerId=<id>" \
  -H "Authorization: Bearer $TOKEN"

Antwort: ein neues JWT mit dem gewählten Customer-Scope. Alte Tokens bleiben gültig, zeigen aber auf den vorherigen Customer.

Siehe auch: Audit-Trail.

Mit dieser Seite weiterarbeiten

Fertige Anweisungen für dein KI-Werkzeug. Kopieren, einfügen, loslegen — die KI holt sich den Inhalt selbst über die Adresse im Text.

Die Schritte für mich zusammenfassen Das Wesentliche, in der richtigen Reihenfolge.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/developer-portal/getting-started/cors-and-auth.md
Die vollständige Sammlung: https://ayoune.com/de/docs/developer-portal.md

Fasse den Inhalt für mich zusammen.

- Zuerst in zwei Sätzen: worum geht es hier?
- Dann die Schritte in der Reihenfolge, in der ich sie gehen muss.
- Je Schritt eine Zeile, in einfacher Sprache.
- Am Ende: was ich vorher bereithalten sollte.

Lass nichts weg, was ich brauche, um wirklich fertig zu werden.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
Bei der Einrichtung helfen Schritt für Schritt, mit Rückfragen an mich.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/developer-portal/getting-started/cors-and-auth.md
Die vollständige Sammlung: https://ayoune.com/de/docs/developer-portal.md

Begleite mich Schritt für Schritt durch die Einrichtung.

- Sag mir zuerst, was ich bereithalten muss (Zugänge, Daten, Zeit).
- Dann führe mich EINEN Schritt nach dem anderen. Warte auf mein "weiter".
- Nenne je Schritt, woran ich merke, dass er geklappt hat.
- Wenn etwas schiefgeht, frag nach der genauen Meldung, statt zu raten.

Wenn die Anleitung eine Stelle offen lässt, sag mir das, statt sie zu erfinden.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
Bei einem Problem weiterhelfen Ursache eingrenzen statt raten.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/developer-portal/getting-started/cors-and-auth.md
Die vollständige Sammlung: https://ayoune.com/de/docs/developer-portal.md

Hilf mir, ein Problem einzugrenzen.

- Frag mich zuerst, was ich beobachte und was ich erwartet hätte.
- Leite daraus die wahrscheinlichsten Ursachen ab, die zu dieser Quelle passen.
- Gib mir je Ursache EINEN Test, der sie bestätigt oder ausschließt.
- Sortiere so, dass der billigste Test zuerst kommt.

Rate nicht. Wenn die Quelle das Problem nicht abdeckt, sag mir, wo ich
weitersuchen sollte.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
In einfachen Worten erklären Ohne Fachbegriffe, von Grund auf.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/developer-portal/getting-started/cors-and-auth.md
Die vollständige Sammlung: https://ayoune.com/de/docs/developer-portal.md

Erkläre den Inhalt so, dass ihn jemand ohne Vorwissen versteht.

- Beginne mit dem Zweck: wozu gibt es das überhaupt?
- Fachbegriffe beim ersten Vorkommen in einem Halbsatz erklären.
- Ein Alltags-Vergleich, wo er wirklich trägt — keiner, wo er hinkt.
- Am Ende: die drei Dinge, die man sich merken sollte.

Kürze nicht durch Weglassen von Einschränkungen. Eine Vereinfachung, die eine
Bedingung unterschlägt, ist eine Falschaussage.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
Checkliste zum Abhaken Zum Mitgehen während der Umsetzung.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/developer-portal/getting-started/cors-and-auth.md
Die vollständige Sammlung: https://ayoune.com/de/docs/developer-portal.md

Mache daraus eine **abhakbare Checkliste** für die praktische Umsetzung.

- Je Punkt genau eine Handlung, im Imperativ.
- Reihenfolge so, dass kein Punkt eine spätere Voraussetzung braucht.
- Voraussetzungen und Stolperstellen als eingerückte Unterpunkte.
- Am Ende eine Abnahme: woran erkenne ich, dass alles richtig ist?
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
In mein Projekt einbauen Konkreter Code für meinen Anwendungsfall.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/developer-portal/getting-started/cors-and-auth.md
Die vollständige Sammlung: https://ayoune.com/de/docs/developer-portal.md

Hilf mir, das in mein Projekt einzubauen.

- Frag mich zuerst nach Sprache, Umgebung und dem, was ich erreichen will.
- Gib dann ein minimales, lauffähiges Beispiel — keine Auslassungs-Punkte.
- Benenne die Fehlerfälle, die ich abfangen muss, und wie sie sich zeigen.
- Nenne Grenzen: Zeitlimits, Mengenbegrenzungen, Berechtigungen.

Verwende ausschließlich das, was die Quelle wirklich beschreibt. Erfinde keine
Felder, Parameter oder Endpunkte — ein erfundener Aufruf kostet mich mehr Zeit,
als er spart.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.

War dieser Artikel hilfreich?

👎 Nein (0)
Kommentar hinterlassen