> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gpt-de-babi.perfproai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentification

> Identifiants application et tokens utilisateur à courte durée de vie.

L'authentification utilise deux niveaux :

1. Votre backend utilise `client_id:client_secret` en **Basic Auth** pour créer un token utilisateur.
2. Votre application utilise ce token court en **Bearer Auth** pour les conversations, messages et feedbacks.

## Cycle de vie recommandé

* Conservez le secret dans un gestionnaire de secrets serveur.
* Créez le token après que votre propre session utilisateur a été vérifiée.
* Renouvelez-le après expiration ; ne créez pas de mécanisme de refresh côté mobile.
* Lors d'une rotation ou révocation de clé, tous les tokens Bearer de l'application sont révoqués.
* Utilisez des clés distinctes pour `sandbox` et `production`.

<Note>
  Les réponses sensibles utilisent `Cache-Control: no-store`. Les tokens ne sont stockés qu'en version hachée par GPT de Babi.
</Note>

## Exemple backend Node.js

```javascript theme={null}
const basic = Buffer.from(
  `${process.env.GPT_DE_BABI_CLIENT_ID}:${process.env.GPT_DE_BABI_CLIENT_SECRET}`
).toString("base64");

const response = await fetch(
  "https://gpt-de-babi.perfproai.com/api/partners/v1/tokens",
  {
    method: "POST",
    headers: {
      Authorization: `Basic ${basic}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ external_user_id: `usr_${authenticatedUser.id}` })
  }
);
```
