> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth

> Authentifiez la CLI Social media studio avec votre compte

Les commandes `auth:*` gèrent les identifiants que la CLI utilise pour communiquer avec l'API. Les identifiants sont stockés localement dans `~/.so-me/config.json` (ou `~/.so-me-dev/config.json` pour le binaire `so-me-dev`).

> [!NOTE]
>
> Chaque commande accepte les options globales `--api-key <key>`, `--api-url <url>`, `--json` (par défaut), `--table` et `--verbose`. Les variables d'environnement `SOME_API_KEY` et `SOME_API_URL` ont priorité sur les identifiants stockés. Voir la [présentation de la CLI](/fr/cli/overview.md) pour plus de détails.

## auth:login

S'authentifie auprès de l'API. Vous pouvez fournir directement une clé d'API, ou l'omettre pour lancer le provisionnement d'appareil approuvé dans le navigateur. Le [guide Auth.md](https://so-me.studio/auth.md) documente les endpoints d'appareil et le flux MCP OAuth distinct.

```bash theme={null}
so-me auth:login [options]
```

| Option | Description |
| - | - |
| `--api-key <key>` | Clé d'API à stocker localement. Lorsqu'elle est fournie, le flux d'appareil est ignoré. |

### Connexion par clé d'API

Lorsque vous passez `--api-key`, la CLI enregistre la clé dans la configuration locale (ainsi que `--api-url` si vous avez aussi défini cette option globale) et se termine sans contacter le serveur.

```bash theme={null}
so-me auth:login --api-key sk_live_xxxxxxxxxxxxxxxxxxxxxxxx
```

```bash Sortie theme={null}
Authentication settings saved successfully.
Run "so-me auth:status" to verify.
```

Vous pouvez aussi indiquer une URL d'API personnalisée en enregistrant la clé :

```bash theme={null}
so-me auth:login --api-key sk_live_xxxxxxxxxxxxxxxxxxxxxxxx --api-url https://api.so-me.studio
```

> [!TIP]
>
> L'authentification par clé d'API est recommandée pour les scripts et le CI/CD. Au lieu de stocker la clé, vous pouvez définir la variable d'environnement `SOME_API_KEY`.

### Provisionnement d'appareil approuvé dans le navigateur

Lorsque `--api-key` est omis, la CLI lance un flux d'autorisation d'appareil via `/auth/device/code` et `/auth/device/token`. Ces endpoints JSON provisionnent une clé d'API après approbation de l'utilisateur ; ils sont distincts de l'endpoint de jeton MCP OAuth :

```bash theme={null}
so-me auth:login
```

**1. Demander un code d'appareil**

La CLI demande un code d'appareil à l'API et affiche une URL de vérification ainsi qu'un code utilisateur à usage unique. Elle indique aussi pendant combien de minutes le code reste valide.

**2. Ouvrir l'URL et saisir le code**

La CLI tente d'ouvrir automatiquement votre navigateur (au mieux). Si ce n'est pas le cas, ouvrez manuellement l'URL affichée, puis saisissez le code indiqué.

**3. Attendre l'autorisation**

La CLI interroge l'API pendant que vous autorisez l'accès dans le navigateur. Une fois approuvé, elle confirme l'adresse e-mail autorisée et enregistre automatiquement la clé d'API générée.

```bash Sortie theme={null}
  To authenticate, open this URL in your browser:

  https://app.so-me.studio/cli/authorize

  And enter this code:

  WDJB-MJHT

  Code expires in 10 minutes.
  Browser opened automatically.

✔ Device authorized!

  Logged in as jane@example.com
  API key generated and saved.
  Run "so-me auth:status" to verify.
```

> [!WARNING]
>
> Si le flux d'appareil réussit mais que votre offre ne permet pas de générer une clé d'API, la CLI affiche un avertissement à la place. L'accès à l'API nécessite l'offre Standard, Advanced ou Lifetime. Créez une clé manuellement et exécutez `so-me auth:login --api-key <key>` pour terminer.

Le flux d'appareil se termine avec un code non nul si le code expire ou si l'autorisation expire avant que vous ne l'ayez terminée. Relancez `so-me auth:login` pour recommencer.

## auth:status

Affiche l'état d'authentification actuel, y compris la clé d'API masquée et l'URL d'API configurée. Cette vérification est purement locale — elle lit la configuration stockée et ne contacte pas le serveur.

```bash theme={null}
so-me auth:status
```

```bash Sortie theme={null}
Authenticated
  API Key: sk_live_xxxx...abcd
  API URL: https://api.so-me.studio
  Workspace: my-workspace
```

La ligne `Workspace` n'apparaît que si un espace de travail par défaut est configuré. Si aucun identifiant n'est stocké, la commande indique que vous n'êtes pas authentifié et vous renvoie vers `auth:login`.

```bash Sortie (non authentifié) theme={null}
Not authenticated.
Run "so-me auth:login --api-key <key>" to authenticate.
```

## auth:whoami

Vérifie la clé d'API actuelle auprès du serveur et affiche l'utilisateur et l'organisation authentifiés. Contrairement à `auth:status`, qui ne lit que la configuration locale, cette commande interroge l'API (`/v1/settings/profile` et `/v1/settings/organization`) et échoue immédiatement si la clé a été révoquée.

```bash theme={null}
so-me auth:whoami
```

```bash Exemples theme={null}
# Default JSON output
so-me auth:whoami

# Compact table
so-me auth:whoami --table

# Pipe to jq — just the email
so-me auth:whoami | jq -r '.user.email'

# Confirm the active organization
so-me auth:whoami | jq '{org: .organization.name, role: .user.tenantRole}'
```

Le résultat est un objet combinant les deux réponses sous les clés `user` et `organization` :

```json theme={null}
{
  "user": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "email": "jane@example.com"
  },
  "organization": {
    "id": "6f9619ff-8b86-d011-b42d-00c04fc964ff",
    "name": "Acme Inc"
  }
}
```

## auth:logout

Supprime les identifiants stockés en effaçant le fichier de configuration local.

```bash theme={null}
so-me auth:logout
```

```bash Sortie theme={null}
Logged out. Credentials removed.
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.