# Authentification

Authentifier les requêtes de votre produit vers Beeuni.

Canonical page: https://beeuni.ai/docs/fr/sdk/auth

## Créer un client

Le SDK appelle `getToken` à chaque requête. Votre application gère le stockage et le renouvellement des tokens.

```ts
import { createBeeuni } from '@beeuni/sdk';

const beeuni = createBeeuni({
  backendUrl: 'https://api.beeuni.ai/v1',
  getToken: async () => process.env.BEEUNI_API_KEY ?? null,
});

const projects = await beeuni.projects.list();
```

## Choisir des identifiants

- Utilisez une clé API personnelle pour les scripts serveur ou la CI. Conservez-la sur le serveur et choisissez la portée minimale disponible.
- Utilisez un compte de service pour un agent ou un autre appelant non humain. Attribuez-lui les rôles de projet nécessaires ; un nouveau compte de service n’a accès à aucun projet.
- Pour une application agissant au nom de ses utilisateurs, utilisez [Sign in with Beeuni](/docs/fr/sdk/sign-in). Le gestionnaire serveur gère les tokens OAuth et leur renouvellement.

## Traiter les requêtes refusées

`401` indique des identifiants absents, expirés ou invalides. `403` peut indiquer des autorisations insuffisantes ou une fonctionnalité désactivée ; lisez le code d’erreur avant de réessayer.

Si votre fonction de token met en cache un token renouvelable, ajoutez `invalidate(rejectedToken)`. Le SDK appelle cette fonction avant de réessayer une seule fois la requête refusée.

## Protéger les identifiants

N’intégrez pas de clés API serveur au code du navigateur, aux URL ou aux logs. Utilisez votre serveur ou le proxy OAuth pour les requêtes du navigateur. Révoquez les identifiants compromis dans **Account → Tokens**.

[Exemple complet](/docs/fr/sdk/example)
