# Autorizando aplicaciones de Rememberizer

La implementación de Rememberizer admite el estándar [tipo de concesión de código de autorización](https://tools.ietf.org/html/rfc6749#section-4.1).

El flujo de la aplicación web para autorizar a los usuarios para tu aplicación es el siguiente:

1. Los usuarios son redirigidos a Rememberizer para autorizar su cuenta.
2. El usuario elige mementos para usar con tu aplicación.
3. Tu aplicación accede a la API con el token de acceso del usuario.

Visita la página [#explore-third-party-apps-and-service](https://docs.rememberizer.ai/es/uso-personal/integrations/manage-third-party-apps#explore-third-party-apps-and-service) para ver el ejemplo de interfaz de usuario del flujo.

Próximamente: Diagrama de flujo de autorización OAuth2

Este diagrama de secuencia ilustrará el flujo completo de OAuth2 entre:

* Navegador del usuario
* Tu aplicación (cliente)
* Servidor de autorización de Rememberizer
* Recursos de la API de Rememberizer

El diagrama mostrará el intercambio de códigos de autorización, tokens y solicitudes de API en todos los pasos del proceso.

### Paso 1. Solicitar la identidad de Rememberizer de un usuario

Redirija al usuario al servidor de autorización de Rememberizer para iniciar el proceso de autenticación y autorización.

```
GET https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/
```

Parámetros:

<table><thead><tr><th width="236">nombre</th><th>descripción</th></tr></thead><tbody><tr><td>client_id</td><td><strong>Requerido</strong><br>El ID de cliente para su aplicación. Puede encontrar este valor en el Desarrollador. Haga clic en <strong>Desarrollador</strong> en la esquina superior izquierda. En la lista de aplicaciones registradas, haga clic en su aplicación y verá el ID de cliente en <strong>Credenciales de la Aplicación.</strong></td></tr><tr><td>response_type</td><td><strong>Requerido</strong><br>Debe ser <code>code</code> para concesiones de código de autorización.</td></tr><tr><td>scope</td><td><p><strong>Opcional</strong></p><p>Una lista delimitada por espacios de ámbitos que identifican los recursos a los que su aplicación podría acceder en nombre del usuario.</p></td></tr><tr><td>redirect_uri</td><td><strong>Requerido</strong><br>La URL en su aplicación a la que se enviará a los usuarios después de la autorización.</td></tr><tr><td>state</td><td><p><strong>Requerido</strong></p><p>Un valor opaco utilizado por el cliente para mantener el estado entre la solicitud y la devolución de llamada. El servidor de autorización incluye este valor al redirigir el agente de usuario de vuelta al cliente.<br></p></td></tr></tbody></table>

### Paso 2. El usuario elige y configura sus recuerdos

Los usuarios elegirán qué recuerdos usar con su aplicación.

### Paso 3. Los usuarios son redirigidos de vuelta a su sitio por Rememberizer

Después de que los usuarios seleccionen sus recuerdos, Rememberizer redirige de vuelta a su sitio con un parámetro `code` temporal, así como el estado que proporcionó en el paso anterior en un parámetro `state`. El código temporal expirará después de un corto período de tiempo. Si los estados no coinciden, un tercero creó la solicitud y debe abortar el proceso.

### Paso 4. Intercambiar el código de autorización por tokens de actualización y acceso

```
POST https://api.rememberizer.ai/api/v1/auth/oauth2/token/
```

Este endpoint toma los siguientes parámetros de entrada.

<table><thead><tr><th width="165">nombre</th><th>descripción</th></tr></thead><tbody><tr><td>client_id</td><td><strong>Requerido</strong><br>El ID del cliente para tu aplicación. Puedes encontrar este valor en el Desarrollador. La instrucción para encontrar este ID está en el paso 1.</td></tr><tr><td>client_secret</td><td><strong>Requerido</strong><br>El secreto del cliente que recibiste de Rememberizer para tu aplicación.</td></tr><tr><td>code</td><td>El código de autorización que recibiste en el paso 3.</td></tr><tr><td>redirect_uri</td><td><strong>Requerido</strong><br>La URL en tu aplicación a la que se envían los usuarios después de la autorización. Debe coincidir con el redirect_uri en el paso 1.</td></tr></tbody></table>

### Paso 5. Utiliza el token de acceso para acceder a la API

El token de acceso te permite hacer solicitudes a la API en nombre de un usuario.

```
Authorization: Bearer OAUTH-TOKEN
GET https://api.rememberizer.ai/api/me/
```

Por ejemplo, en curl puedes establecer el encabezado de autorización así:

```shell
curl -H "Authorization: Bearer OAUTH-TOKEN" https://api.rememberizer.ai/api/me/
```

## Referencias

Github: <https://github.com/skydeckai/rememberizer-integration-samples>
