Uwierzytelnianie
Wybierz osobisty klucz API lub OAuth 2.1 z PKCE.
Używaj osobistego klucza API we własnych skryptach. Używaj OAuth dla aplikacji działającej w imieniu innych klientów NinjaBuy, w tym klientów MCP.
OAuth 2.1
Użyj przepływu kodu autoryzacyjnego z PKCE S256. REST i MCP przyjmują ten sam token dostępu OAuth NinjaBuy. Każdy token działa w imieniu konta, które się zalogowało i zatwierdziło dostęp; nie możesz wybrać innego konta w treści żądania.
Wszystkie punkty końcowe OAuth korzystają z adresu bazowego https://www.ninjabuy.com. Ścieżki wykrywania i autoryzacji:
Metadane OAuth · Metadane zasobu MCP
POST /api/auth/mcp/register
GET /api/auth/mcp/authorize
POST /api/auth/mcp/token- Zarejestruj klienta przez
POST /api/auth/mcp/register. Klient publiczny wysyła JSON zclient_name,redirect_urisitoken_endpoint_auth_method: "none". Zachowaj zwróconyclient_id. - Wygeneruj nowy losowy
stateicode_verifierPKCE. Oblicz na tej podstawiecode_challengejako SHA-256 zakodowane w base64url. - Otwórz
/api/auth/mcp/authorizew przeglądarce użytkownika zresponse_type=code,client_id,redirect_uri,state,code_challenge,code_challenge_method=S256iscope=openid offline_access. - Użytkownik loguje się numerem telefonu NinjaBuy i zatwierdza twoją aplikację. W punkcie callback sprawdź
state, zanim użyjesz zwróconegocode. - Wyślij POST zakodowany jako formularz do
/api/auth/mcp/tokenzgrant_type=authorization_code,code,client_id, tym samymredirect_uriicode_verifier.
Dołącz otrzymany token dostępu do żądań REST:
Authorization: Bearer YOUR_ACCESS_TOKENTokeny dostępu są ważne przez 1 godzinę. Przy offline_access tokeny odświeżania umożliwiają odnawianie dostępu przez maksymalnie 7 dni. Odświeżaj przez ten sam punkt końcowy tokenów, wysyłając POST zakodowany jako formularz z grant_type=refresh_token, client_id i refresh_token. Przechowuj tokeny bezpiecznie i zaloguj się ponownie, gdy odnowienie przestanie być możliwe.
Brakujący, wygasły lub nieprawidłowy token dostępu zwraca 401 z nagłówkiem WWW-Authenticate wskazującym metadane. Zobacz Błędy.