> ## Documentation Index
> Fetch the complete documentation index at: https://exosphere-auto-translate-docs-20260623-1106.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Entrar

> Entre no FailproofAI pela CLI para ativar lembretes e recursos personalizados

```bash theme={null}
failproofai auth login    # e-mail + código de uso único
failproofai auth logout   # revogar esta sessão
failproofai auth whoami   # exibir a identidade conectada
```

A forma legada com flags `--login` / `--logout` / `--whoami` ainda é aceita como alias para compatibilidade com versões anteriores.

A autenticação é opcional. Políticas, o dashboard, a página `/audit` e todos os outros recursos locais funcionam exatamente da mesma forma, independentemente de você estar conectado ou não. A tela de login existe para que recursos que **precisam** de uma identidade estável (lembretes de re-auditoria por enquanto, mais no futuro) tenham onde se ancorar.

## Fluxo de login

```bash theme={null}
failproofai auth login
```

Solicita seu e-mail, envia um código de 6 dígitos de uso único para esse endereço, pede o código e, em caso de sucesso, grava `~/.failproofai/auth.json` (modo `0600`). A mesma sessão fica visível no dashboard do aplicativo — ao clicar em `[ set a reminder ]` em `/audit`, você aparecerá como conectado.

O dashboard expõe o mesmo fluxo como um diálogo modal em `/audit` para usuários que nunca usam a CLI.

## Sair

```bash theme={null}
failproofai auth logout
```

Revoga a sessão atual no servidor e exclui `~/.failproofai/auth.json`. Se o servidor de API estiver inacessível, o arquivo local é removido de qualquer forma — a intenção local de sair sempre prevalece.

## Verificação de identidade

```bash theme={null}
failproofai auth whoami
```

Exibe `<email> (<user uuid>)` e encerra com código 0 quando existe uma sessão válida, ou `not signed in` e encerra com código 1 caso contrário. Atualiza silenciosamente o token de acesso em segundo plano se ele estiver a menos de um minuto de expirar.

## Lembrete recorrente de re-auditoria

Quando você clica em **`[ set a reminder ]`** na página `/audit` (ou entra via o modal que o botão acessa), o dashboard grava um pequeno arquivo auxiliar em `~/.failproofai/next-audit.json`:

```json theme={null}
{
  "next_audit_at": 1780765200,
  "user_email": "you@example.com",
  "set_at": 1780160574
}
```

Este arquivo está vinculado ao e-mail para o qual foi definido — trocar a sessão da CLI para uma conta diferente oculta qualquer lembrete pertencente ao usuário anterior. O intervalo padrão é de **7 dias**, configurável futuramente quando o agendador for implementado. Criado com permissões `0600` como `auth.json`.

O endpoint `/api/auth/reminder` do dashboard expõe `GET` (ler), `POST` (definir / reagendar) e `DELETE` (limpar), e requer uma sessão ativa.

## O que há em `~/.failproofai/auth.json`

```json theme={null}
{
  "access_token": "eyJhbGc…",
  "refresh_token": "9ede3e…",
  "access_expires_at": 1780160574,
  "refresh_expires_at": 1782748974,
  "user": { "id": "<uuid>", "email": "you@example.com" }
}
```

Criado com permissões `0600` (leitura/escrita somente pelo proprietário). O token de acesso é um JWT HS256 com validade de 1 hora; o token de atualização é uma string aleatória opaca de 256 bits que o servidor armazena como `SHA-256(token)`. A reutilização do token de atualização é detectada no servidor e revoga todas as sessões do usuário.

## Variáveis de ambiente

| Variável               | Padrão                       | Finalidade                                                                                                      |
| ---------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `FAILPROOF_API_URL`    | `https://api.befailproof.ai` | Substitui a URL base do servidor de API. Útil para desenvolvimento local com um servidor de API auto-hospedado. |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai`             | Substitui o local onde `auth.json` é armazenado. Principalmente para testes.                                    |

Consulte [Variáveis de ambiente](/pt-br/cli/environment-variables) para a lista completa.

## Solução de problemas

**"Could not reach the api-server"** — a CLI não consegue abrir uma conexão TCP com `FAILPROOF_API_URL`. Verifique sua rede ou defina `FAILPROOF_API_URL` se você estiver executando um servidor de API auto-hospedado.

**"Rate limited"** — muitas tentativas de login em uma janela de 15 minutos para aquele e-mail (5/e-mail) ou IP (20/IP), ou um cooldown de 30 segundos após a solicitação anterior para o mesmo e-mail. A mensagem de erro inclui o tempo de espera em segundos.

**Código rejeitado** — o OTP estava incorreto, expirou ou a entrada atingiu o bloqueio de 5 tentativas erradas. Execute `failproofai auth login` novamente para solicitar um novo código.
