Suitable scenarios: You are building a third-party application / Agent / MCP client / automation workflow, and want users to sign in with one click using their Ace Data Cloud account and access their resources on the platform as needed, without requiring users to manually copy and paste an API Key.
Terminology & Endpoint Quick Reference
All endpoints are underhttps://auth.acedata.cloud, and the latest addresses can be obtained at any time through the discovery endpoint (Discovery):
Supported capabilities:
response_type=code, grant_types=authorization_code, refresh_token, code_challenge_methods=S256, plain, client authentication methods client_secret_post (confidential clients) / none (PKCE public clients).
Permission Scopes (Scope)
Request according to the principle of “least privilege”; users will see every permission you request on the authorization page. Identity-related (OIDC compatible)
Platform resources
Aggregate scopes (automatically expanded)
Special
Typical combinations: third-party “one-click sign-in” =openid profile; MCP / IDE clients that need to automatically configure Keys =openid profile credentials:read credentials:write; full management console =openid profile email platform offline_access.
Step 1: Register an OAuth Application
Open auth.acedata.cloud/user/oauth-apps → “Create Application”, and fill in:- Application name / description / Logo: These will be displayed on the user’s authorization consent page.
- Client Type:
- Confidential——You have a backend and can securely store the
client_secret(Web services, backend services). - Public——Pure frontend / desktop / CLI / mobile applications, cannot store secrets and must use PKCE.
- Confidential——You have a backend and can securely store the
- Redirect URIs: The address users are redirected back to after authorization is completed; it must exactly match the
redirect_uriyou pass when initiating authorization, and multiple can be entered. - Scopes: Select the scopes you need from the previous section.
client_id; confidential clients will also have the client_secret displayed only once—save it immediately, as it cannot be viewed again after closing (you can regenerate it through “Rotate Secret” on the details page; the old secret becomes invalid immediately).
Each account can create up to 20 OAuth applications.
Step 2: Redirect the User to the Authorization Page
In your application, redirect the user’s browser to the authorization page with query parameters:state: Generate a random string yourself. It is returned unchanged during the callback and is used to prevent CSRF; be sure to validate it.- PKCE (required for public clients, also recommended for confidential clients): First generate a random
code_verifier, then calculatecode_challenge = BASE64URL( SHA256( code_verifier ) ), placecode_challengein the authorization URL, and keepcode_verifierfor yourself to use in Step 4.
<redirect_uri>?error=access_denied&error_description=...&state=....
The authorization code is valid for 10 minutes and can only be used once.
Step 3: Exchange the Authorization Code for a Token
On your backend (confidential client) or client (PKCE public client), call the token endpoint usingcode.
Confidential client (with client_secret):
refresh_token solo aparece si se solicitó offline_access):
access_token es un JWT, que contiene la declaración scope; su período de validez es de 15 días (segundos de expires_in). El período de validez del Refresh Token es de 30 días.
Paso 4: llamar a la interfaz con Access Token
Simplemente coloca el token en el encabezadoAuthorization: Bearer.
Leer información del usuario (UserInfo, los campos se filtran según el scope autorizado):
platform.acedata.cloud, autenticada según el scope). Por ejemplo, si se ha obtenido credentials:read:
scope en el JWT: el token solo puede acceder a los recursos autorizados por el usuario. Si se accede a un recurso no autorizado, devolverá 403.
Renovar el token
Después de que el Access Token expire, usa el Refresh Token para intercambiarlo por un nuevo par de tokens (se requiere haber solicitadooffline_access inicialmente):
Revocar el token
Caso real: así es como están conectados nuestros propios servidores MCP
Los más de 15 servidores MCP de Ace Data Cloud (NanoBanana, Midjourney, Suno, Seedance, Kling…) usan exactamente este flujo para la conexión «Sign in with Ace Data Cloud» que aparece en Claude Desktop / Cursor: todos están registrados como aplicaciones OAuth de tipo público (PKCE), solicitan scopes relacionados concredentials, y después de que el usuario autoriza, el servidor MCP puede llamar a api.acedata.cloud en nombre del usuario, sin que el usuario tenga que pegar manualmente una API Key. Tu integración es exactamente igual que la de ellos.
Errores comunes
Las respuestas de error se unifican como{ "error": "<code>", "error_description": "<descripción legible para humanos>" }:
Referencia rápida de límites
Integrar aplicaciones OAuth de terceros en la página de inicio de Studio
En «Configuración → Inicio → Componentes del sitio web» de Studio se puede habilitar OAuth y configurar elclient_id y la dirección de devolución de llamada registrada de la aplicación de terceros.
El sitio web y la devolución de llamada deben usar HTTPS, tener el mismo origen (protocolo, dominio y puerto), y usar un origen diferente al de Studio.
No se debe incluir client_secret en la configuración; la clave de la aplicación solo puede almacenarse en el backend de terceros.
Los permisos solicitados por el componente son profile:read credentials:read. Cada visitante debe dar su consentimiento por separado; que el administrador del sitio configure el componente no representa la autorización de los visitantes.
La página de terceros genera un state aleatorio y un verificador PKCE, y envía un challenge S256 a Studio. Studio aloja la página oficial de autorización en el área del componente,
y después de que el usuario consiente, el tercero recibe un código de autorización de un solo uso, llama al endpoint de token para intercambiarlo por un OAuth access token y luego accede a
GET https://platform.acedata.cloud/api/v1/credentials/?user_id=<ID de usuario> para leer la API Key existente.
El ID de usuario procede del id devuelto en el paso anterior por GET https://auth.acedata.cloud/api/v1/users/me; la interfaz de lista de credenciales no acepta user_id=me.
Studio no transmite su propio token de inicio de sesión a terceros ni lee e inyecta directamente la Key del usuario.
Los clientes públicos deben usar S256 PKCE. Al intercambiar el token, se debe proporcionar un redirect_uri exactamente igual al de la solicitud de autorización.
El código de autorización solo puede canjearse una vez. Antes de la autorización se comprobará si la dirección de devolución de llamada está registrada.
La página de terceros necesita implementar el protocolo de mensajes; cualquier página web existente no puede integrarse automáticamente solo rellenando una URL.
Consulta el ejemplo completo en la Guía de integración del componente OAuth de Studio.
Autorizar la lectura de la API Key equivale a permitir que terceros guarden y utilicen esa Key. Cancelar la autorización OAuth no invalida la Key que terceros ya hayan copiado;
el usuario debe revocar o rotar la Key por separado.
