Aller au contenu principal

Guide d'authentification

Apprenez à vous authentifier avec l'API Stockaj et à gérer les tokens d'accès.

Types de tokens

Stockaj utilise des tokens Laravel Sanctum. Il existe deux contextes de tokens :

TypeCréé parCas d'utilisation
Token utilisateurUtilisateur via profil/APIAccès complet à l'API limité aux permissions de l'utilisateur
Token d'instanceAdmin de l'espace de travail via ParamètresAccès API au niveau de l'espace de travail avec contrôle fin des capacités

Pour la plupart des intégrations, les Tokens d'instance sont recommandés — ils sont liés à un espace de travail et ont un contrôle explicite des capacités.

Création de tokens

Via l'interface web

  1. Allez dans Paramètres → Tokens API.
  2. Cliquez sur + Nouveau token.
  3. Nommez votre token (ex. : scanner-entrepot-prod).
  4. Sélectionnez les capacités.
  5. Cliquez sur Créer et copiez immédiatement le token.
attention

Le token n'est affiché qu'une seule fois au moment de la création. Si vous le perdez, vous devrez en créer un nouveau.

Conventions de nommage des tokens

Utilisez des noms descriptifs qui indiquent l'objectif et l'environnement du token :

scanner-entrepot-prod
sync-inventaire-staging
app-mobile-v2
ci-testing

Utilisation des tokens

En-tête HTTP

Incluez le token dans l'en-tête Authorization :

Authorization: Bearer VOTRE_TOKEN_API

Exemple complet

curl -X GET "https://app.stockaj.com/api/v2/items" \
-H "Authorization: Bearer 1|a1b2c3d4e5f6g7h8..." \
-H "Accept: application/json" \
-H "Content-Type: application/json"

JavaScript

const response = await fetch('https://app.stockaj.com/api/v2/items', {
headers: {
'Authorization': 'Bearer VOTRE_TOKEN_API',
'Accept': 'application/json',
},
});
const data = await response.json();

Python

import requests

response = requests.get(
'https://app.stockaj.com/api/v2/items',
headers={
'Authorization': 'Bearer VOTRE_TOKEN_API',
'Accept': 'application/json',
},
)
data = response.json()

PHP

$response = Http::withToken('VOTRE_TOKEN_API')
->acceptJson()
->get('https://app.stockaj.com/api/v2/items');

$data = $response->json();

Capacités des tokens

Contrôlez ce que chaque token peut faire avec des capacités granulaires :

Capacités en lecture seule

CapacitéRessources
items:readArticles, variantes, types, tags
renters:readLocataires
rents:readLocations
webhooks:readWebhooks
notifications:readNotifications
instance:readParamètres de l'espace de travail

Capacités en écriture

CapacitéRessources
items:createCréer des articles, variantes, types, tags
items:updateModifier des articles, variantes, types, tags
items:deleteSupprimer/restaurer des articles, variantes, types, tags
renters:createCréer des locataires
renters:updateModifier des locataires
renters:deleteSupprimer/restaurer des locataires
rents:createCréer des locations
rents:updateModifier des locations
rents:deleteSupprimer des locations

Capacités spéciales

CapacitéObjectif
kiosk:scanUtiliser les endpoints de scan et recherche kiosque
webhooks:manageCréer/modifier/supprimer des webhooks
notifications:manageGérer l'état des notifications et les préférences
instance:manageMettre à jour les paramètres de l'espace de travail

Bonnes pratiques de sécurité

  1. Principe du moindre privilège — N'accordez que les capacités dont votre intégration a réellement besoin.
  2. Tokens séparés par intégration — Utilisez des tokens différents pour différents services afin de pouvoir les révoquer indépendamment.
  3. Rotation régulière des tokens — Créez périodiquement de nouveaux tokens et retirez les anciens.
  4. Ne commitez jamais de tokens — Utilisez des variables d'environnement ou des gestionnaires de secrets.
  5. HTTPS uniquement — Les tokens sont envoyés dans les en-têtes ; HTTPS empêche l'interception.
  6. Surveillez l'utilisation — Examinez les patterns d'accès API et révoquez les tokens inutilisés.

Réponses d'erreur

401 Non autorisé

Le token est manquant, invalide ou expiré :

{
"message": "Unauthenticated."
}

403 Interdit

Le token n'a pas la capacité requise :

{
"message": "This action is unauthorized."
}

Résolution : Créez un nouveau token avec les capacités nécessaires, ou mettez à jour les permissions du token existant.