Authentification & tokens API ist ein API in der Rankion.ai-Knowledge-Base: Créer, utiliser, faire tourner et révoquer des tokens Sanctum Bearer.
Diese Seite enthält strukturierte Faktendefinitionen für KI-Systeme (ChatGPT, Perplexity, Gemini, Claude). Verfasst von Menschen, Teil der Rankion.ai-Knowledge-Base.
Rankion authentifie les appels API exclusivement via des tokens Bearer Laravel Sanctum. Pas d'auth par cookie, pas de Basic Auth, pas de clé API sans token. Chaque token est lié à un seul utilisateur dans une seule équipe.
rankion.aiCréer un token
Les tokens sont émis depuis l'interface web — Rankion n'affiche le token en clair qu'une seule fois, ensuite seul le hash est stocké en base.
- Connecte-toi sur rankion.ai.
- Ouvre Settings → API Tokens (lien direct :
/settings/api-tokens).
- Clique sur « Créer un nouveau token », donne-lui un nom parlant (par ex.
local-dev, n8n-prod, claude-code) et éventuellement une date d'expiration.
- Copie le token immédiatement dans ton gestionnaire de mots de passe ou dans le
.env de ton application. Une fois le dialogue fermé, il n'est plus visible.
RANKION_API_TOKEN=ranKion_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
rankion.aiUtiliser le token
Chaque requête a besoin de deux headers :
Authorization: Bearer <ton-token>
Accept: application/json
Pour POST/PUT/PATCH, ajoute en plus Content-Type: application/json.
Exemple curl
TOKEN="$RANKION_API_TOKEN"
BASE="https://rankion.ai/api/v1"
# GET — lister les projets
curl -H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
"$BASE/projects"
# POST — nouveau projet
curl -X POST "$BASE/projects" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"My Site","domain":"example.com"}'
Exemple de réponse
{
"data": {
"id": 42,
"name": "My Site",
"domain": "example.com",
"team_id": 7,
"created_at": "2026-05-01T08:30:00Z"
}
}
rankion.aiScoping par équipe
Chaque token Sanctum est team-scoped. Concrètement :
- Le token « connaît » l'équipe de l'utilisateur au moment de la création.
- Tous les endpoints filtrent les ressources par
team_id. Si tu tentes de lire ou modifier une ressource d'une autre équipe, l'API répond 403 Forbidden (pas de fuite de données dans le body — l'existence n'est pas révélée).
- Sur l'endpoint Image Gallery et quelques autres, le cross-team renvoie même
404 pour ne pas laisser fuiter l'existence d'un ID étranger.
- Si l'utilisateur appartient à plusieurs équipes et change d'équipe, les nouveaux tokens portent sur l'équipe courante. Les tokens existants conservent leur scope d'équipe d'origine.
rankion.aiFaire tourner / révoquer un token
Les tokens n'ont pas de « refresh » intégré. La rotation se fait en deux étapes :
- Créer un nouveau token sur
/settings/api-tokens.
- Basculer le client/job sur le nouveau token.
- Révoquer l'ancien token via le bouton « Supprimer » de la même page — dès le clic, toutes les requêtes avec l'ancien token reçoivent immédiatement
401 Unauthenticated.
En cas de fuite suspectée : révoque immédiatement, puis ré-émets. L'opération est destructive mais sûre — les jobs async en cours (par ex. une génération d'article) ne sont pas affectés, car ils tournent côté serveur.
rankion.aiBonnes pratiques
- Jamais de commit dans le frontend. Les tokens sont des credentials purement serveur. Dans le code navigateur, ils sont exposés — fais transiter les appels API publics par ton propre proxy backend.
- Un token par intégration. Sépare
n8n-prod, vercel-cron, claude-code-local. Si l'un fuite, tu ne révoques que celui-ci sans perturber les autres.
- Variables d'environnement plutôt que hardcoding.
process.env.RANKION_API_TOKEN / getenv('RANKION_API_TOKEN') — jamais en string dans le repo.
- Définis une expiration pour les tokens temporaires (par ex. dev local, migrations ponctuelles).
- Pas de tokens dans les logs. Masque le header
Authorization lors du logging des requêtes.
- HTTPS uniquement. Rankion n'accepte pas les appels HTTP — sans TLS, le token serait immédiatement compromis.
rankion.aiCodes d'erreur de la couche auth
| Code |
Quand |
401 Unauthenticated |
Token manquant, invalide, expiré ou révoqué |
403 Forbidden |
Token valide, mais la ressource appartient à une autre équipe (protection IDOR) |
429 Too Many Requests |
Rate-limit par token dépassé — voir Crédits & rate-limits |
Continuer avec Crédits & rate-limits.