Authentification
Jetons d'accès personnels, scopes, et comment authentifier chaque requête API et MCP de Qyvo.
Qyvo utilise les jetons d'accès personnels Laravel Passport pour tout le trafic API et MCP. Il existe un seul type de jeton — la même valeur fonctionne pour l'API REST et le serveur MCP.
Format du jeton
Les jetons sont des chaînes opaques — généralement plus de 60 caractères hexadécimaux. Ils sont scopés sur :
- l'utilisateur qui les a créés (son tenant est résolu automatiquement)
- le scope
mcp, qui autorise à la fois les appels REST et MCP
Il n'y a pas de compte de service ou de jeton d'organisation. Chaque jeton appartient à un utilisateur individuel. Révoquer l'utilisateur révoque ses jetons.
Générer un jeton
- Connectez-vous à qyvo.io
- Ouvrez Paramètres → Jetons API
- Cliquez sur Créer un jeton, donnez-lui un nom décrivant le cas d'usage (
Claude Desktop,n8n production,support script, …) - Copiez la valeur une seule fois — Qyvo affiche le texte en clair pendant 90 secondes, puis le masque définitivement
Si vous perdez un jeton, générez-en un nouveau et révoquez l'ancien. Qyvo ne peut pas récupérer le texte en clair.
Utiliser un jeton
Joignez-le en tant qu'en-tête Bearer à chaque requête :
Authorization: Bearer YOUR_TOKEN_HERE
Un test rapide minimal dans votre langage de prédilection :
curl https://www.qyvo.io/api/v1/me \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
const res = await fetch('https://www.qyvo.io/api/v1/me', {
headers: { Authorization: `Bearer ${process.env.QYVO_TOKEN}` },
});
const me = await res.json();
use Illuminate\Support\Facades\Http;
$me = Http::withToken(env('QYVO_TOKEN'))
->get('https://www.qyvo.io/api/v1/me')
->json();
import os, httpx
me = httpx.get(
'https://www.qyvo.io/api/v1/me',
headers={'Authorization': f"Bearer {os.environ['QYVO_TOKEN']}"},
).json()
Les quatre exemples renvoient l'utilisateur et le tenant authentifiés. Voir GET /v1/me.
Scopes
Actuellement, chaque jeton est émis avec le scope unique mcp. Il accorde l'accès à :
- Tous les endpoints REST
/api/v1/* - Le serveur MCP à
/mcp
Il n'existe pas de scope plus restreint aujourd'hui. Si vous devez restreindre un jeton à un sous-ensemble d'endpoints, exécutez un serveur d'intégration dans votre propre stack et faites passer en proxy uniquement les appels que vous souhaitez exposer.
Révoquer un jeton
Dans Paramètres → Jetons API, cliquez sur l'action Révoquer à côté du jeton. La révocation prend effet immédiatement — les requêtes en cours utilisant ce jeton échouent avec 401.
Bonnes pratiques de sécurité
- Ne committez jamais de jetons. Utilisez des variables d'environnement ou un gestionnaire de secrets (1Password, Doppler, AWS Secrets Manager, secrets GitHub Actions).
- Un jeton par intégration. Cela rend l'audit et la rotation chirurgicaux — révoquer
n8n productionne casse pas le script de support. - Effectuez une rotation périodique. Trimestrielle est un défaut raisonnable. Générez le nouveau jeton, déployez-le, puis révoquez l'ancien.
- N'embarquez pas de jetons dans du code côté client. Les jetons accordent un accès complet à l'espace de travail ; traitez-les comme un mot de passe de base de données. Pour les contextes navigateur/widget, passez par un serveur que vous contrôlez.
- Utilisez HTTPS uniquement. Qyvo redirige toute requête HTTP, mais des jetons exposés sur HTTP simple doivent être considérés comme compromis — révoquez immédiatement.
Erreurs courantes
| Statut | Signification |
|---|---|
401 Unauthenticated |
En-tête manquant, jeton mal orthographié, jeton révoqué, ou jeton sans le scope mcp |
404 Personal access client not found |
Problème d'installation côté serveur — contactez le support |
422 No workspace configured for this account. |
L'utilisateur derrière le jeton n'a pas de tenant — vérifiez la configuration de l'espace de travail |
Voir le catalogue complet des Erreurs.
