Authentification
Choisissez une clé API personnelle ou OAuth 2.1 avec PKCE.
Utilisez une clé API personnelle pour vos propres scripts. Utilisez OAuth pour une application agissant pour d’autres clients NinjaBuy, y compris les clients MCP.
OAuth 2.1
Utilisez le flux de code d'autorisation avec PKCE S256. REST et MCP acceptent le même jeton d'accès OAuth NinjaBuy. Chaque jeton agit pour le compte qui s'est connecté et a approuvé l'accès ; vous ne pouvez pas choisir un autre compte dans le corps de la requête.
Tous les points de terminaison OAuth utilisent l’origine https://www.ninjabuy.com. Chemins de découverte et d’autorisation :
Découverte OAuth · Découverte de la ressource MCP
POST /api/auth/mcp/register
GET /api/auth/mcp/authorize
POST /api/auth/mcp/token- Enregistrez votre client avec
POST /api/auth/mcp/register. Un client public envoie du JSON avecclient_name,redirect_urisettoken_endpoint_auth_method: "none". Conservez leclient_idreçu. - Générez de nouvelles valeurs aléatoires
stateetcode_verifierpour PKCE. Calculez lecode_challengeSHA-256 encodé en base64url. - Ouvrez
/api/auth/mcp/authorizedans le navigateur de l'utilisateur avecresponse_type=code,client_id,redirect_uri,state,code_challenge,code_challenge_method=S256etscope=openid offline_access. - L'utilisateur se connecte avec son numéro de téléphone NinjaBuy et approuve votre application. Dans votre callback, vérifiez
stateavant d'utiliser lecodereçu. - Envoyez un POST encodé comme formulaire à
/api/auth/mcp/tokenavecgrant_type=authorization_code,code,client_id, le mêmeredirect_urietcode_verifier.
Envoyez le jeton d'accès obtenu dans les requêtes REST :
Authorization: Bearer YOUR_ACCESS_TOKENLes jetons d'accès durent 1 heure. Avec offline_access, les jetons de renouvellement permettent de les renouveler pendant 7 jours au maximum. Utilisez le même endpoint de jetons avec un POST encodé comme formulaire contenant grant_type=refresh_token, client_id et refresh_token. Stockez les jetons en lieu sûr et reconnectez-vous lorsque le renouvellement n'est plus valide.
Un jeton d'accès absent, expiré ou invalide renvoie 401 avec un défi de découverte WWW-Authenticate. Consultez Erreurs.