# Autenticación externa

Entrar y vincular la cuenta con Google, GitHub o 42, con reglas claras para unir o mover cuentas.

Fuente: https://ardumaker.com/docs/autenticacion-externa/

- Categoría: Comunidad y servicios adicionales
- Estado: Disponible
- Requisitos: Una cuenta en Google, GitHub o 42
- Herramientas MCP: Sin herramientas MCP: se usa desde el panel.

## ¿Qué permite hacer?

- Crear una cuenta de ArduMaker o entrar con Google, GitHub o 42.
- Vincular una cuenta de cada proveedor al perfil desde los datos de la cuenta.
- Soltar una cuenta vinculada.

## ¿Cuándo conviene usarlo?

Para no manejar otra contraseña, para mostrar GitHub o 42 en el [perfil público](https://ardumaker.com/docs/perfiles-publicos), o para acceder a los planes de una [escuela](https://ardumaker.com/docs/escuelas) 42.

## ¿Cómo funciona en ArduMaker?

Cuando el proveedor devuelve la cuenta autorizada, ArduMaker decide a qué perfil pertenece, en este orden:

1. El perfil que tiene la sesión abierta en el navegador: está vinculando desde su cuenta.
2. El perfil que ya tiene esa cuenta del proveedor: está entrando.
3. El perfil con el mismo correo: es la misma persona registrada por otro lado.
4. Ninguno: se crea una cuenta nueva con una contraseña al azar que la persona no usa.

| Resultado del vínculo | Qué pasó |
| --- | --- |
| `creada` | Se vinculó por primera vez. |
| `actualizada` | Ya era de este perfil; se refrescaron sus datos. |
| `movida` | Estaba en otro perfil y pasó a este. |
| `reemplazada` | Este perfil tenía otra cuenta del mismo proveedor; quedó la nueva. |

Después de volver del proveedor, el front convierte la sesión corta en una sesión normal y aplica «recordarme» si se eligió.

## ¿Qué cambia realmente?

- Se crea o se actualiza la integración del proveedor en el perfil.
- Si la cuenta de 42 cambia de perfil, la pertenencia a la escuela 42 se mueve con ella.
- Se abre una [sesión](https://ardumaker.com/docs/sesiones-y-dispositivos) nueva para ese dispositivo.

## Esquema

**Inicio de sesión con un proveedor**

```text
ArduMaker (pide la URL del proveedor)
  ↓
Google, GitHub o 42 (la persona autoriza)
  ↓
Callback de ArduMaker (decide el perfil)
  ↓
Sesión (lista en el navegador)
```

## Resultado esperado

La persona entra con su proveedor y ve en sus datos qué cuentas tiene vinculadas.

## Errores y resolución

| Código | Causa |
| --- | --- |
| 409 `ultima_integracion` | Es la última cuenta vinculada y falta confirmar. Sin ella, una cuenta creada por proveedor puede quedarse sin forma de entrar. |
| 404 `no_vinculada` | Esa cuenta no está vinculada al perfil. |
| 400 `proveedor_desconocido` | El proveedor no es `github`, `google` ni `42`. |

> **PRECAUCION:** Desvincular 42 da de baja la membresía de la escuela 42: los VPS ya creados siguen, pero no se pueden pedir nuevos con el plan de 42.

## Relación con MCP

No hay herramientas MCP para iniciar sesión ni vincular cuentas. Ver [/mcp/docs](https://ardumaker.com/mcp/docs).

## Funciones relacionadas

- [Sesiones y dispositivos](https://ardumaker.com/docs/sesiones-y-dispositivos/)
- [Perfiles públicos](https://ardumaker.com/docs/perfiles-publicos/)
- [Escuelas](https://ardumaker.com/docs/escuelas/)
- [Deploy desde GitHub](https://ardumaker.com/docs/github-deploy/)
