Kimlik doğrulama
Kişisel API anahtarı veya PKCE ile OAuth 2.1 seçin.
Kendi betikleriniz için kişisel API anahtarı kullanın. MCP istemcileri dahil, başka NinjaBuy müşterileri adına işlem yapan bir uygulama için OAuth kullanın.
OAuth 2.1
PKCE S256 ile yetkilendirme kodu akışını kullanın. REST ve MCP aynı NinjaBuy OAuth erişim belirtecini kabul eder. Her belirteç, oturum açıp erişimi onaylayan hesap adına işlem yapar; istek gövdesinde başka bir hesap seçemezsiniz.
Tüm OAuth uç noktaları https://www.ninjabuy.com kökenini kullanır. Keşif ve yetkilendirme yolları:
OAuth keşfi · MCP kaynak keşfi
POST /api/auth/mcp/register
GET /api/auth/mcp/authorize
POST /api/auth/mcp/token- İstemcinizi
POST /api/auth/mcp/registerile kaydedin. Genel istemci,client_name,redirect_urisvetoken_endpoint_auth_method: "none"içeren JSON gönderir. Dönenclient_iddeğerini saklayın. - Yeni rastgele
stateve PKCEcode_verifierdeğerleri oluşturun. SHA-256 ile hesaplanıp base64url ile kodlanancode_challengedeğerini türetin. - Kullanıcının tarayıcısında
/api/auth/mcp/authorizeadresiniresponse_type=code,client_id,redirect_uri,state,code_challenge,code_challenge_method=S256vescope=openid offline_accessile açın. - Kullanıcı NinjaBuy telefon numarasıyla oturum açar ve uygulamanızı onaylar. Geri çağrı adresinizde dönen
codedeğerini kullanmadan öncestatedeğerini doğrulayın. /api/auth/mcp/tokenadresinegrant_type=authorization_code,code,client_id, aynıredirect_urivecode_verifierdeğerleriyle form kodlamalı POST gönderin.
Elde edilen erişim belirtecini REST isteklerinde gönderin:
Authorization: Bearer YOUR_ACCESS_TOKENErişim belirteçleri 1 saat geçerlidir. offline_access ile yenileme belirteçleri 7 güne kadar yenilemeye izin verir. Aynı belirteç uç noktasına grant_type=refresh_token, client_id ve refresh_token içeren form kodlamalı POST göndererek yenileyin. Belirteçleri güvenli saklayın; yenileme artık geçerli olmadığında yeniden oturum açın.
Eksik, süresi dolmuş veya geçersiz bir erişim belirteci, WWW-Authenticate keşif sorgusuyla birlikte 401 döndürür. Hatalar sayfasına bakın.