API : authentification

L'authentification à l'API REST de Snipcart se fait via le mécanisme d'authentification de base HTTP.

Vous devez d'abord créer une clé API secrète à partir de votre tableau de bord du commerçants. Vous pouvez créer autant de clés secrètes que vous le souhaitez.

Vous pouvez créer des clés en mode de test ou de production. Chaque clé vous donnera l'autorisation d'effectuer des requêtes pour le mode spécifié uniquement. Une clé créée en mode de test ne sera pas valide pour obtenir vos données de production.

Ces clés doivent rester privées

Toute personne détenant ces clés sera en mesure d'accéder à toutes les informations de votre compte. Cela signifie qu'elles ne devraient pas :

  • Apparaître dans votre code source
  • Apparaître dans vos ressources client compilées (HTML, JavaScript)
  • Être envoyées par des canaux non sécurisés (courrier électronique, plateformes de chat, etc.)

Format des informations d'identification

Comme spécifié par le RFC 7617, les informations d'identification doivent être fournies sous forme de chaîne encodée en base64 : "[nom d'utilisateur]:[mot de passe]". En fonction de l'outil que vous utilisez pour effectuer des requêtes HTTP, vous devrez peut-être encoder en base64 votre chaîne d'identifiants dans votre propre code.

Dans notre cas, la clé API doit être passée comme nom d'utilisateur, et aucun mot de passe ne doit être fourni. Par exemple, si votre clé API est "secret", vous devez encoder "secret:" en une chaîne en base64. Le caractère deux-points qui suit est important.

Exemple de requête (bash)

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/orders \
  -u {YOUR_SECRET_API_KEY}:

Exemple de requête (JavaScript)

const secret = "YOUR_SECRET_API_KEY"

const request = await fetch('https://app.snipcart.com/api/orders', {
    headers: {
        'Authorization': `Basic ${btoa(secret)}`,
        'Accept': 'application/json'
    }
})

const result = await request.json()