aYOUne
translate
No está en su idioma

Esta página aún no está disponible en es. Está leyendo la versión de.

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.

Seguir trabajando con esta página

Instrucciones listas para tu herramienta de IA. Copia, pega y empieza: la IA obtiene el contenido por sí misma mediante la dirección incluida en el texto.

Resumir los pasos para mí Lo esencial, en el orden correcto.
Lee la siguiente documentación de tolinax UG y trabaja con ella.

Esta página: https://ayoune.com/es/docs/developer-portal/cors-and-auth.md
La colección completa: https://ayoune.com/es/docs/developer-portal.md

Resume el contenido para mí.

- Primero, en dos frases: ¿de qué trata esto?
- Después, los pasos en el orden en que debo darlos.
- Una línea por paso, en lenguaje sencillo.
- Al final: qué debería tener preparado de antemano.

No omitas nada que necesite para terminar de verdad.
Nota sobre las fuentes:
- Cada página de esta documentación está disponible como Markdown (la misma dirección con `.md`).
- Hay un resumen legible por máquina de todo el contenido público en `/llms.txt`.
- Si tienes acceso al servidor MCP de aYOUne, puedes trabajar con datos en vivo
  en lugar de esta instantánea. Si no, ignora este punto.
Explicar para qué necesito esto Para qué sirve y cuándo merece la pena.
Lee la siguiente documentación de tolinax UG y trabaja con ella.

Esta página: https://ayoune.com/es/docs/developer-portal/cors-and-auth.md
La colección completa: https://ayoune.com/es/docs/developer-portal.md

Explícame para qué necesito esto.

1. ¿Qué problema resuelve? En una frase, desde mi punto de vista.
2. Tres situaciones típicas en las que realmente me ayuda.
3. Cuándo NO lo necesito: eso me ahorra tiempo.
4. Qué puedo hacer en su lugar si no encaja.

Cíñete a lo que dice la fuente. Donde no aporte nada, dilo abiertamente en vez
de suponer.
Nota sobre las fuentes:
- Cada página de esta documentación está disponible como Markdown (la misma dirección con `.md`).
- Hay un resumen legible por máquina de todo el contenido público en `/llms.txt`.
- Si tienes acceso al servidor MCP de aYOUne, puedes trabajar con datos en vivo
  en lugar de esta instantánea. Si no, ignora este punto.
Ayudarme con la configuración Paso a paso, preguntándome sobre la marcha.
Lee la siguiente documentación de tolinax UG y trabaja con ella.

Esta página: https://ayoune.com/es/docs/developer-portal/cors-and-auth.md
La colección completa: https://ayoune.com/es/docs/developer-portal.md

Acompáñame paso a paso durante la configuración.

- Dime primero qué necesito tener preparado (accesos, datos, tiempo).
- Después guíame de UN paso en UN paso. Espera a que te diga "siguiente".
- En cada paso, indica cómo puedo saber que ha funcionado.
- Si algo falla, pídeme el mensaje exacto en vez de suponer.

Si las instrucciones dejan algo abierto, dímelo en lugar de inventarlo.
Nota sobre las fuentes:
- Cada página de esta documentación está disponible como Markdown (la misma dirección con `.md`).
- Hay un resumen legible por máquina de todo el contenido público en `/llms.txt`.
- Si tienes acceso al servidor MCP de aYOUne, puedes trabajar con datos en vivo
  en lugar de esta instantánea. Si no, ignora este punto.
Ayudarme con un problema Acotar la causa en vez de adivinar.
Lee la siguiente documentación de tolinax UG y trabaja con ella.

Esta página: https://ayoune.com/es/docs/developer-portal/cors-and-auth.md
La colección completa: https://ayoune.com/es/docs/developer-portal.md

Ayúdame a acotar un problema.

- Pregúntame primero qué observo y qué esperaba en su lugar.
- A partir de ahí, deduce las causas más probables acordes con esta fuente.
- Para cada causa, dame UNA prueba que la confirme o la descarte.
- Ordénalas de modo que la prueba más barata vaya primero.

No adivines. Si la fuente no cubre el problema, dime dónde debería seguir
buscando.
Nota sobre las fuentes:
- Cada página de esta documentación está disponible como Markdown (la misma dirección con `.md`).
- Hay un resumen legible por máquina de todo el contenido público en `/llms.txt`.
- Si tienes acceso al servidor MCP de aYOUne, puedes trabajar con datos en vivo
  en lugar de esta instantánea. Si no, ignora este punto.
Explicarlo con palabras sencillas Sin tecnicismos, desde cero.
Lee la siguiente documentación de tolinax UG y trabaja con ella.

Esta página: https://ayoune.com/es/docs/developer-portal/cors-and-auth.md
La colección completa: https://ayoune.com/es/docs/developer-portal.md

Explica el contenido de modo que lo entienda alguien sin conocimientos previos.

- Empieza por el propósito: ¿para qué existe esto?
- Explica los tecnicismos en media frase la primera vez que aparezcan.
- Una comparación cotidiana donde de verdad funcione, ninguna donde cojee.
- Al final: las tres cosas que conviene recordar.

No acortes omitiendo condiciones. Una simplificación que oculta un requisito es
una afirmación falsa.
Nota sobre las fuentes:
- Cada página de esta documentación está disponible como Markdown (la misma dirección con `.md`).
- Hay un resumen legible por máquina de todo el contenido público en `/llms.txt`.
- Si tienes acceso al servidor MCP de aYOUne, puedes trabajar con datos en vivo
  en lugar de esta instantánea. Si no, ignora este punto.
Una lista para ir marcando Para seguirla mientras lo haces.
Lee la siguiente documentación de tolinax UG y trabaja con ella.

Esta página: https://ayoune.com/es/docs/developer-portal/cors-and-auth.md
La colección completa: https://ayoune.com/es/docs/developer-portal.md

Conviértelo en una **lista de verificación** para la puesta en práctica.

- Exactamente una acción por punto, en imperativo.
- Ordénala de modo que ningún punto dependa de un requisito posterior.
- Requisitos y escollos como subpuntos con sangría.
- Termina con una comprobación: ¿cómo sé que todo está correcto?
Nota sobre las fuentes:
- Cada página de esta documentación está disponible como Markdown (la misma dirección con `.md`).
- Hay un resumen legible por máquina de todo el contenido público en `/llms.txt`.
- Si tienes acceso al servidor MCP de aYOUne, puedes trabajar con datos en vivo
  en lugar de esta instantánea. Si no, ignora este punto.

Was this article helpful?

👎 No (0)
Leave a comment