# Autenticação externa

Entrar e ligar a conta com Google, GitHub ou 42, com regras claras para juntar ou mover contas.

Fonte: https://ardumaker.com/pt/docs/autenticacion-externa/

- Categoria: Comunidade e serviços adicionais
- Estado: Disponível
- Requisitos: Uma conta Google, GitHub ou 42
- Ferramentas MCP: Sem ferramentas MCP: usa-se a partir do painel.

## O que permite fazer?

- Criar uma conta ArduMaker ou entrar com Google, GitHub ou 42.
- Ligar uma conta de cada fornecedor ao perfil nos dados da conta.
- Desligar uma conta ligada.

## Quando convém usar?

Para não gerenciar outra senha, para mostrar GitHub ou 42 no [perfil público](https://ardumaker.com/pt/docs/perfiles-publicos), ou para aceder aos planos de uma [escola](https://ardumaker.com/pt/docs/escuelas) 42.

## Como funciona na ArduMaker?

Quando o fornecedor devolve a conta autorizada, a ArduMaker decide a que perfil pertence, por esta ordem:

1. O perfil com a sessão aberta no navegador: está ligando a partir da sua conta.
2. O perfil que já tem essa conta do fornecedor: está entrando.
3. O perfil com o mesmo email: é a mesma pessoa registrada por outro lado.
4. Nenhum: cria-se uma conta nova com uma senha aleatória que a pessoa não usa.

| Resultado da link | O que aconteceu |
| --- | --- |
| `creada` | Ligada pela primeira vez. |
| `actualizada` | Já era deste perfil; os dados foram atualizados. |
| `movida` | Estava noutro perfil e passou para este. |
| `reemplazada` | Este perfil tinha outra conta do mesmo fornecedor; fica a nova. |

Depois de voltar do fornecedor, o front-end converte a sessão curta em uma sessão normal e aplica «lembrar-me» se tiver sido escolhido.

## O que muda realmente?

- A integração do fornecedor no perfil é criada ou atualizada.
- Se a conta 42 mudar de perfil, a pertença à escola 42 muda com ela.
- Abre-se uma nova [sessão](https://ardumaker.com/pt/docs/sesiones-y-dispositivos) para esse dispositivo.

## Esquema

**Login com um fornecedor**

```text
ArduMaker (pede o URL do fornecedor)
  ↓
Google, GitHub ou 42 (a pessoa autoriza)
  ↓
Callback da ArduMaker (decide o perfil)
  ↓
Sessão (pronta no navegador)
```

## Resultado esperado

A pessoa entra com o seu fornecedor e vê nos seus dados que contas tem ligadas.

## Erros e resolução

| Código | Causa |
| --- | --- |
| 409 `ultima_integracion` | É a última conta ligada e falta confirmar. Sem ela, uma conta criada por fornecedor pode ficar sem forma de entrar. |
| 404 `no_vinculada` | Essa conta não está ligada ao perfil. |
| 400 `proveedor_desconocido` | O fornecedor não é `github`, `google` nem `42`. |

> **PRECAUCION:** Desligar a 42 remove a pertença à escola 42: os VPS já criados continuam, mas não se podem pedir novos com o plano da 42.

## Relação com MCP

Não há ferramentas MCP para iniciar sessão nem ligar contas. Ver [/mcp/docs](https://ardumaker.com/pt/mcp/docs).

## Funcionalidades relacionadas

- [Sessões e dispositivos](https://ardumaker.com/pt/docs/sesiones-y-dispositivos/)
- [Perfis públicos](https://ardumaker.com/pt/docs/perfiles-publicos/)
- [Escolas](https://ardumaker.com/pt/docs/escuelas/)
- [Deploy do GitHub](https://ardumaker.com/pt/docs/github-deploy/)
