> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stockshift.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps OAuth

> Permite que otros clientes de StockShift conecten tu app a su cuenta con OAuth 2.1.

Crea una app OAuth cuando otras personas vayan a conectar tu software a su propia cuenta de StockShift. Cada miembro que la conecta elige la organización y aprueba los alcances, y el token que recibe tu app nunca puede hacer más de lo que podría hacer ese miembro.

StockShift es un servidor de autorización OAuth 2.1. Las apps usan el flujo de código de autorización con PKCE (`S256`). No hay secreto de cliente.

## Endpoints

Todos están en el host de la app, `https://app.stockshift.io`.

| Endpoint | Para qué sirve |
| - | - |
| `GET /.well-known/oauth-authorization-server` | Metadatos del servidor ([RFC 8414](https://www.rfc-editor.org/rfc/rfc8414)). Descubre los demás endpoints desde aquí. |
| `POST /oauth/register` | Registra tu app ([RFC 7591](https://www.rfc-editor.org/rfc/rfc7591)). Limitado a 10 por hora desde cada dirección IP. |
| `GET /oauth/authorize` | Envía aquí al miembro para que inicie sesión y apruebe tu app. |
| `POST /oauth/token` | Cambia el código por tokens y actualízalos. |

## El flujo

**1. Registra tu app**

Regístrala una vez con el nombre de tu app y sus URI de redirección. La respuesta contiene tu `client_id`.

**2. Envía al miembro a la página de consentimiento**

Genera un verificador de código y su desafío `S256`, y luego abre `/oauth/authorize` con tu `client_id`, el `redirect_uri`, el `scope` que quieres, un `state` y el `code_challenge`.

El miembro inicia sesión, elige la organización y decide qué puede hacer tu app, módulo por módulo. Al principio, Ver está activado y Cambiar está desactivado, y solo puede ofrecer lo que le permiten sus propios permisos. Una app que cualquiera puede registrar muestra la insignia **Aplicación no verificada**.

**3. Cambia el código por tokens**

StockShift devuelve al miembro a tu URI de redirección con un `code`, o con `error=access_denied` si presionó **Denegar**. Envía el código y tu verificador de código a `/oauth/token`.

**4. Llama a la API**

Envía el token de acceso como `Authorization: Bearer <token>`, igual que una clave de API.

## Duración de los tokens

Los tokens de acceso duran una hora. Los tokens de actualización duran 30 días, y cada actualización devuelve uno nuevo, así que guárdalo cada vez.

Los SDK aceptan una función para el token, que llaman antes de cada solicitud, así que puedes actualizarlo sobre la marcha:

```ts theme={null}
const stockshift = new StockShift({ token: () => tokens.current() });
```

## Cuando termina el acceso

Un miembro ve las apps que conectó en **Configuración > Aplicaciones conectadas** y puede revocar cualquiera en cualquier momento. El propietario de la organización ve las de todos. Cuando se revoca una app, o cuando el miembro que la conectó sale de la organización, sus tokens dejan de funcionar de inmediato y la app debe volver a pedir acceso.


## Related topics

- [StockShift para desarrolladores](https://docs.stockshift.io/es/index.md)
- [Inicia una conexión OAuth](https://docs.stockshift.io/es/api-reference/conexiones/inicia-una-conexión-oauth.md)
- [Lista las aplicaciones conectadas](https://docs.stockshift.io/es/api-reference/apps-oauth/lista-las-aplicaciones-conectadas.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.