---
title: "Acceso y permisos | StudioMeyer Academy"
description: "Lee contenido público o conecta tus datos de aprendizaje. Tú eliges los permisos."
canonical: "https://studiomeyer.academy/es/entwickler/anmeldung"
language: es
markdown_versions: ["https://studiomeyer.academy/entwickler/anmeldung.md", "https://studiomeyer.academy/en/entwickler/anmeldung.md", "https://studiomeyer.academy/es/entwickler/anmeldung.md"]
publisher: "StudioMeyer Academy, https://studiomeyer.academy (llms.txt: https://studiomeyer.academy/llms.txt)"
---

## Descubrir el acceso

Lee los metadatos del recurso protegido de tu entrada. Un 401 del MCP protegido los indica en WWW-Authenticate. El emisor común es https://mcp.studiomeyer.academy. REST y MCP son recursos separados: https://studiomeyer.academy/v1 y https://mcp.studiomeyer.academy/mcp. Cada token OAuth está vinculado al recurso elegido; no lo reutilices para el otro.

- [Metadatos del recurso REST](https://studiomeyer.academy/.well-known/oauth-protected-resource)
- [Servidor de autorización OAuth](https://mcp.studiomeyer.academy/.well-known/oauth-authorization-server)

## Elige un método

Las rutas, lecciones, biblioteca, búsqueda y propuestas funcionan sin cuenta. El perfil del agente se usa solo para la solicitud actual de propuestas y no se guarda en ella. Envía solo los datos necesarios.

OAuth conecta una herramienta de IA con tus funciones personales. Una clave API sirve para tus scripts. No compartas cookies del navegador ni datos de acceso con una IA.

## Registra un cliente

Tu cliente OAuth registra sus redirect\_uris reales mediante POST /register en el emisor. Los clientes públicos usan token\_endpoint\_auth\_method: none. Usa el client\_id recibido. Genera un state y un code\_verifier secreto nuevos para cada conexión y calcula la code\_challenge PKCE S256. No registres una dirección de retorno inventada.

## Aprueba los permisos personalmente

Abre /authorize con response\_type=code, client\_id, redirect\_uri, state, code\_challenge, code\_challenge\_method=S256, scope y resource. La persona inicia sesión en el navegador y elige permisos. credits:spend está desmarcado por defecto. Las conexiones existentes nunca reciben permisos nuevos automáticamente.

Permiso

Permite

learn:read

Leer datos personales y saldo

learn:write

Guardar progreso, notas, comentarios y planes

credits:spend

Solo OAuth: acciones con créditos aprobadas por separado, nunca solo por el permiso

## Intercambia el código

Verifica state al volver. Intercambia el código en POST /token con grant\_type=authorization\_code, code, client\_id, la misma redirect\_uri exacta, code\_verifier y resource. Usa application/x-www-form-urlencoded. Un cliente público no necesita secreto. Renueva con grant\_type=refresh\_token y sustituye el token anterior por el rotado. La reutilización revoca toda la familia.

## Usa la credencial

Envía Authorization: Bearer \<token> solo al recurso elegido. GET /v1/me/access o academy\_my\_access muestra los permisos concedidos realmente. Las cookies no sustituyen un Bearer de REST. Guarda los tokens de forma segura y nunca los incluyas en URL, registros ni repositorios.

```
# Set ACADEMY_TOKEN locally to your REST credential. Never commit it.
curl -fsS 'https://studiomeyer.academy/v1/me/access' \
  -H "Authorization: Bearer $ACADEMY_TOKEN"
```

## API keys

Crea y revoca tus claves en una sesión del navegador en /dashboard/keys. read equivale a learn:read; read-write equivale a learn:read y learn:write. Las claves no pueden gastar créditos. Los permisos OAuth y las claves existentes no pueden crear otras claves.

- [Gestionar claves API](https://studiomeyer.academy/es/dashboard/keys)

## Límites de solicitudes

La tabla muestra los buckets REST actuales. Las solicitudes públicas comparten un bucket conservador por defecto. Solo una cabecera IP configurada y reemplazada por un proxy de confianza separa clientes anónimos. MCP y OAuth pueden añadir límites de transporte. Las respuestas incluyen RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset; reset y Retry-After se expresan en segundos.

Bucket

Límite

Ventana (s)

Identidad

anonymous

120

60

shared\_anonymous

read

120

60

verified\_principal

write

30

60

verified\_principal

## Gestiona los errores

REST y MCP devuelven success, result, errors, messages y request\_id. Basa la lógica en errors\[\].slug o code, nunca en el texto traducido. Los endpoints OAuth usan error y error\_description. Si falta un permiso, la persona debe autorizar una nueva conexión con los permisos necesarios.

- [Entender los errores](https://studiomeyer.academy/es/entwickler/fehler)

## Revoca el acceso

Envía token, client\_id y opcionalmente token\_type\_hint como formulario a POST /revoke en el emisor. Revoca las claves API en el panel. Las credenciales caducadas o revocadas no permiten llamadas protegidas. Vuelve a conectar solo si la persona lo solicita.

## Flujo seguro

Lee primero, propone después y escribe solo dentro del encargo. Borrar requiere confirm: true tras la aprobación. Muestra paquetes, archivos y scripts antes de escribir. Sigue los links devueltos, revisa las respuestas y detente si el resultado es incierto. Aclara outcome\_unknown mediante el historial antes de intentar otro pago.

## Gastar créditos

Las compras y el gasto siguen desactivados (unconfigured) sin precios, cantidades y configuración legal aprobados. Ningún pago de prueba genera saldo real. Un permiso OAuth por sí solo nunca autoriza a gastar créditos.

GET /v1/premium/{id}/preview solo lee la vista previa y devuelve quote: null, incluso con autenticación. Crea una oferta concreta mediante POST /v1/me/spend-quotes o academy\_prepare\_spend. El agente necesita un permiso OAuth explícito con learn:write y credits:spend más Idempotency-Key. La preparación tiene creditEffect: none; crea una oferta pendiente y no admite userConfirmed.

Envía exactamente una variante: { purpose: PREMIUM, id }, { purpose: TUTOR, level, slug, message } o { purpose: COACHING, topic, format, preferredTime? }. El servidor determina precio, cantidad de créditos y versiones. La oferta vincula las mismas entradas al titular y permiso OAuth, contenido, versión y caducidad.

La persona aprueba por separado la oferta concreta en /dashboard/agent desde una sesión verificada del navegador; solo cuenta la aprobación guardada. Después, la solicitud de gasto incluye consent: { userConfirmed: true, quoteId, maximumCredits } y su propio Idempotency-Key. Un true enviado por el agente no sustituye la aprobación en el navegador. Las claves API personales y las sesiones del navegador no permiten gasto del agente. El coaching nunca usa créditos de bonificación.

## Agent registration (agent\_auth)

El servidor de autorización permite registrar agentes anónimos y vincularlos después a una persona. POST /agent/identity con type=anonymous empieza sin permisos personales. POST /agent/identity/claim prepara la verificación del correo, el mismo navegador y el código del agente. La persona elige expresamente learn:read y learn:write; credits:spend no está disponible. Después de la vinculación, Academy asocia el correo verificado a una cuenta existente o crea una en la primera consulta personal. El agente consulta /token con el permiso de vinculación. Para gastar siguen siendo necesarios OAuth normal y la aprobación separada en el navegador. No se anuncian emisores externos ni endpoints de eventos de seguridad.

- [identity\_endpoint (POST)](https://mcp.studiomeyer.academy/agent/identity)
- [claim\_endpoint (POST)](https://mcp.studiomeyer.academy/agent/identity/claim)
- [Authorization metadata](https://mcp.studiomeyer.academy/.well-known/oauth-authorization-server)

## Sitemap

Páginas públicas de este sitio como Markdown: [sitemap](https://studiomeyer.academy/sitemap.md). Punto de entrada curado: [llms.txt](https://studiomeyer.academy/llms.txt), texto completo: [llms-full.txt](https://studiomeyer.academy/llms-full.txt).
