> ## 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.

# Accedi

> Accedi a FailproofAI dalla CLI per abilitare promemoria e funzioni personalizzate

```bash theme={null}
failproofai auth login    # email + codice monouso
failproofai auth logout   # revoca questa sessione
failproofai auth whoami   # stampa l'identità dell'utente connesso
```

La forma legacy con flag `--login` / `--logout` / `--whoami` è ancora accettata come alias per compatibilità retroattiva.

L'autenticazione è facoltativa. Le policy, la dashboard, la pagina `/audit` e tutte le altre funzioni locali funzionano esattamente allo stesso modo che tu sia connesso o meno. La superficie di login esiste affinché le funzioni che **richiedono** un'identità stabile (promemoria di re-audit oggi, altre in futuro) abbiano un punto di ancoraggio.

## Flusso di accesso

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

Richiede la tua email, invia un codice monouso a 6 cifre a quell'indirizzo, richiede il codice e al termine scrive `~/.failproofai/auth.json` (permessi `0600`). La stessa sessione sarà quindi visibile nella dashboard in-app — cliccando su `[ imposta un promemoria ]` in `/audit` ti vedrà come connesso.

La dashboard espone lo stesso flusso come finestra di dialogo modale su `/audit` per gli utenti che non usano mai la CLI.

## Disconnessione

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

Revoca la sessione corrente sul server ed elimina `~/.failproofai/auth.json`. Se l'api-server è irraggiungibile, il file locale viene rimosso comunque — l'intenzione locale di disconnessione ha sempre la priorità.

## Controllo identità

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

Stampa `<email> (<user uuid>)` e esce con codice 0 quando esiste una sessione valida, oppure stampa `not signed in` e esce con codice 1 altrimenti. Aggiorna silenziosamente il token di accesso in background se è entro un minuto dalla scadenza.

## Promemoria persistente di re-audit

Quando clicchi su **`[ imposta un promemoria ]`** nella pagina `/audit` (o accedi tramite la finestra di dialogo modale a cui il pulsante è collegato), la dashboard scrive un piccolo file companion in `~/.failproofai/next-audit.json`:

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

Questo file è associato all'email per cui è stato impostato — cambiando la sessione CLI su un account diverso nascondi qualsiasi promemoria che appartiene all'utente precedente. L'offset predefinito è **7 giorni**, configurabile in seguito quando arriverà lo scheduler. Creato con permessi `0600` come `auth.json`.

L'endpoint `/api/auth/reminder` della dashboard espone `GET` (lettura), `POST` (impostazione / riprogrammazione) e `DELETE` (cancellazione) e richiede una sessione attiva.

## Cosa contiene `~/.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" }
}
```

Creato con permessi `0600` (lettura/scrittura solo del proprietario). Il token di accesso è un JWT HS256 di 1 ora; il token di refresh è una stringa casuale opaca di 256 bit che il server archivia come `SHA-256(token)`. La riproduzione del token di refresh viene rilevata lato server e revoca ogni sessione dell'utente.

## Variabili di ambiente

| Variabile              | Predefinita                  | Scopo                                                                                               |
| ---------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------- |
| `FAILPROOF_API_URL`    | `https://api.befailproof.ai` | Sovrascrivi l'URL base dell'api-server. Utile per lo sviluppo locale con un api-server self-hosted. |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai`             | Sovrascrivi dove viene archiviato `auth.json`. Principalmente per i test.                           |

Vedi [Variabili di ambiente](/it/cli/environment-variables) per l'elenco completo.

## Risoluzione dei problemi

**"Could not reach the api-server"** — la CLI non riesce ad aprire una connessione TCP a `FAILPROOF_API_URL`. Controlla la tua rete, oppure imposta `FAILPROOF_API_URL` se stai eseguendo un api-server self-hosted.

**"Rate limited"** — troppi tentativi di login in una finestra di 15 minuti per quell'email (5/email) o IP (20/IP), oppure un cooldown di resend di 30 secondi dopo la richiesta precedente per la stessa email. Il messaggio di errore include la finestra di retry-after in secondi.

**Code rejected** — l'OTP era sbagliato, scaduto, o la riga ha raggiunto il suo blocco di 5 tentativi errati. Esegui di nuovo `failproofai auth login` per richiedere un codice nuovo.
