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

# Se connecter

> Connectez-vous à FailproofAI depuis la CLI pour activer les rappels et les fonctionnalités personnalisées

```bash theme={null}
failproofai auth login    # email + code à usage unique
failproofai auth logout   # révoquer cette session
failproofai auth whoami   # afficher l'identité connectée
```

L'ancienne syntaxe avec les flags `--login` / `--logout` / `--whoami` est toujours acceptée comme alias pour la rétrocompatibilité.

L'authentification est optionnelle. Les politiques, le tableau de bord, la page `/audit` et toutes les autres fonctionnalités locales fonctionnent exactement de la même façon, que vous soyez connecté ou non. La fonctionnalité de connexion existe pour que les fonctionnalités qui **nécessitent** une identité stable (rappels de ré-audit aujourd'hui, d'autres à venir) aient un point d'ancrage.

## Processus de connexion

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

Demande votre adresse e-mail, envoie un code à usage unique à 6 chiffres à cette adresse, demande le code, puis en cas de succès écrit `~/.failproofai/auth.json` (mode `0600`). La même session devient alors visible dans le tableau de bord intégré — en cliquant sur `[ set a reminder ]` sur `/audit`, vous serez reconnu comme connecté.

Le tableau de bord expose le même processus sous forme de fenêtre modale sur `/audit` pour les utilisateurs qui n'utilisent jamais la CLI.

## Déconnexion

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

Révoque la session actuelle sur le serveur et supprime `~/.failproofai/auth.json`. Si le serveur API est inaccessible, le fichier local est supprimé quand même — l'intention locale de se déconnecter l'emporte toujours.

## Vérification d'identité

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

Affiche `<email> (<user uuid>)` et quitte avec le code 0 lorsqu'une session valide existe, ou `not signed in` et quitte avec le code 1 dans le cas contraire. Rafraîchit silencieusement le jeton d'accès en arrière-plan s'il expire dans moins d'une minute.

## Rappel de ré-audit persistant

Lorsque vous cliquez sur **`[ set a reminder ]`** sur la page `/audit` (ou que vous vous connectez via la fenêtre modale que le bouton conditionne), le tableau de bord crée un petit fichier complémentaire à `~/.failproofai/next-audit.json` :

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

Ce fichier est associé à l'adresse e-mail pour laquelle il a été défini — changer de session CLI vers un autre compte masque tout rappel appartenant à l'utilisateur précédent. Le délai par défaut est de **7 jours**, configurable ultérieurement lorsque le planificateur sera disponible. Créé avec les permissions `0600` comme `auth.json`.

L'endpoint `/api/auth/reminder` du tableau de bord expose `GET` (lecture), `POST` (définir / reprogrammer) et `DELETE` (supprimer), et nécessite une session active.

## Contenu de `~/.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" }
}
```

Créé avec les permissions `0600` (lecture/écriture réservées au propriétaire). Le jeton d'accès est un JWT HS256 valide 1 heure ; le jeton de rafraîchissement est une chaîne aléatoire opaque de 256 bits que le serveur stocke sous la forme `SHA-256(token)`. La réutilisation du jeton de rafraîchissement est détectée côté serveur et révoque toutes les sessions de l'utilisateur.

## Variables d'environnement

| Variable               | Valeur par défaut            | Utilité                                                                                                    |
| ---------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `FAILPROOF_API_URL`    | `https://api.befailproof.ai` | Remplace l'URL de base du serveur API. Utile pour le développement local avec un serveur API auto-hébergé. |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai`             | Remplace l'emplacement où `auth.json` est stocké. Principalement pour les tests.                           |

Consultez [Variables d'environnement](/fr/cli/environment-variables) pour la liste complète.

## Dépannage

**« Could not reach the api-server »** — la CLI ne peut pas établir une connexion TCP vers `FAILPROOF_API_URL`. Vérifiez votre réseau, ou définissez `FAILPROOF_API_URL` si vous utilisez un serveur API auto-hébergé.

**« Rate limited »** — trop de tentatives de connexion sur une fenêtre de 15 minutes pour cet e-mail (5/e-mail) ou cette adresse IP (20/IP), ou un délai de renvoi de 30 secondes après la demande précédente pour le même e-mail. Le message d'erreur indique le délai d'attente avant de réessayer en secondes.

**Code refusé** — le code OTP était incorrect, expiré, ou la ligne a atteint son verrouillage après 5 tentatives incorrectes. Exécutez à nouveau `failproofai auth login` pour demander un nouveau code.
