# Authentification

Créer un compte et ouvrir une session pour la console. Les routes de ce groupe utilisent la session du portail, pas une clé API.

## Créer un compte développeur (et son premier membre, propriétaire)

`POST /auth/signup`

Authentification : aucune

Corps (JSON) :

| Champ | Type | | Description |
|---|---|---|---|
| `accountName` | string | requis | Nom de votre société ou équipe : il désigne votre compte (2 à 120 caractères). |
| `email` | string | requis | Adresse e-mail du membre. Elle sert d'identifiant de connexion et doit être unique. |
| `password` | string | requis | Mot de passe : 10 caractères au minimum. |

```bash
curl -X POST "$INBOX_API/auth/signup" \
  -H "Content-Type: application/json" \
  -d '{
    "accountName": "Acme Software",
    "email": "dev@acme.com",
    "password": "un-mot-de-passe-solide"
  }'
```

Réponse 201 :

```json
{
  "accountId": "bbfa1ecb-9483-4158-8e9a-4437e512b14b",
  "memberId": "e8878e87-7817-4773-8346-fc26a2433aa6",
  "sessionToken": "ses_91bb0d22558b4575a110844d944cca5d8b05e72328b",
  "expiresAt": "2026-12-12T08:33:45.098Z"
}
```

## Ouvrir une session

`POST /auth/login`

Authentification : aucune

Corps (JSON) :

| Champ | Type | | Description |
|---|---|---|---|
| `email` | string | requis | Adresse e-mail du membre. Elle sert d'identifiant de connexion et doit être unique. |
| `password` | string | requis | Mot de passe : 10 caractères au minimum. |

```bash
curl -X POST "$INBOX_API/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "dev@acme.com",
    "password": "un-mot-de-passe-solide"
  }'
```

Réponse 200 :

```json
{
  "accountId": "bbfa1ecb-9483-4158-8e9a-4437e512b14b",
  "memberId": "e8878e87-7817-4773-8346-fc26a2433aa6",
  "sessionToken": "ses_9be05ed6c0764f063b187d57f0499b2eb42e7f0e4f7",
  "expiresAt": "2026-12-12T08:33:45.271Z"
}
```

## Membre connecté

`GET /auth/me`

Authentification : session du portail

```bash
curl "$INBOX_API/auth/me" \
  -H "Authorization: Bearer $INBOX_SESSION"
```

Réponse 200 :

```json
{
  "accountId": "bbfa1ecb-9483-4158-8e9a-4437e512b14b",
  "memberId": "e8878e87-7817-4773-8346-fc26a2433aa6",
  "role": "owner",
  "email": "dev@acme.com"
}
```

## Fermer la session

`POST /auth/logout`

Authentification : session du portail

```bash
curl -X POST "$INBOX_API/auth/logout" \
  -H "Authorization: Bearer $INBOX_SESSION"
```

Réponse 204 :

```json
(aucun contenu)
```
