Skip to content

API Referansı

CaptchaLa, tüm sunucu tarafı entegrasyonlar için RESTful API sağlar.

Temel URL

https://apiv1.captcha.la

Kimlik Doğrulama

Tüm API istekleri kimlik doğrulama başlıkları gerektirir:

X-App-Key:    YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET

WARNING

X-App-Secret yalnızca sunucu tarafıdır. Asla tarayıcılara, mobil uygulamalara veya genel depolara açmayın.

Sunucu Tarafı Doğrulama API'si

💡 Standart kodu atlamak için bir sunucu SDK'sı kullanın. Uç noktayı sarar, yeniden denemeleri yönetir, tipli hataları yüzeye çıkarır:

Kullanıcı frontend CAPTCHA'yı geçtikten sonra sunucunuzun, SDK tarafından döndürülen token'ı doğrulaması gerekir. Aşağıda sunucu tarafı doğrulama uç noktaları yer alır.

Sunucu Tarafı Token Doğrulama

Frontend SDK'dan gelen pass_token'ı (pt_ ön ekli) doğrular. X-App-Key ve X-App-Secret başlıklarını gerektirir.

bash
POST /v1/validate
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
Content-Type: application/json

{ "pass_token": "pt_xxx", "client_ip": "1.2.3.4" }
json
{
  "code": 0,
  "data": {
    "valid": true,
    "challenge_id": "ch_xxx",
    "action": "login",
    "uid": null,
    "client_ip": "1.2.3.4",
    "risk_score": 12
  }
}

TIP

data.valid === true olduğunu ve data.action değerinin beklediğiniz senaryoyla eşleştiğini doğrulayın (bir pay akışına ait token /login adresinde sunulursa reddedin). Token'lar tek kullanımlıktır.

Sunucu Tarafından Düzenlenen Challenge Token'ı

Backend'inizden kısa ömürlü bir server_token düzenleyin. Tarayıcı, bir challenge başlatırken bu token'ı ileterek isteğin güvenilir sunucunuzdan kaynaklandığını kanıtlar.

Sunucu Token'ı Düzenle

Bu uç noktayı yalnızca kendi sunucunuzdan çağırın. X-App-Key + X-App-Secret gerektirir. Yanıt, frontend'in challenge başlatma çağrısına ileteceği bir server_token (sct_ ön ekli) içerir.

bash
POST /v1/server/challenge/issue
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
Content-Type: application/x-www-form-urlencoded

action=login&ttl=300&max_uses=1&bind_ip=1.2.3.4
json
{
  "code": 0,
  "data": {
    "server_token": "sct_xxxxxxxxxxxx",
    "expires_in": 300,
    "issued_at": 1713600000
  }
}

Gövde Parametreleri (form-urlencoded)

AlanAçıklama
actionİş senaryosu, örn. login, register, pay. Challenge başlatmada kullanılan action ile eşleşmelidir.
ttlToken'ın saniye cinsinden ömrü. Varsayılan 300, maksimum 900.
max_usesToken'ın tüketilebileceği maksimum sayı. Varsayılan 10.
bind_ipToken'ı bir istemci IP'sine bağlar. Başka bir IP'den başlatma reddedilir.
bind_device_idToken'ı belirli bir cihaz id'sine bağlar.
bind_fingerprintToken'ı belirli bir tarayıcı parmak izine bağlar.

Challenge Başlat

CAPTCHA challenge'ı başlatmak için SDK tarafından çağrılır. /v1/server/challenge/issue tarafından düzenlenen isteğe bağlı bir server_token kabul eder.

AlanAçıklama
app_keyGenel App Key'iniz.
actionİş senaryosu. server_token düzenlenirken kullanılan action ile eşleşmelidir.
server_tokenİsteğe bağlı; uygulamada server_token_required = true olduğunda gereklidir.

INFO

Bu uygulama için panelde server_token_required etkinleştirilmişse, challenge başlatma geçerli bir server_token taşımayan istekleri reddeder.

Hata Kodları

KodAçıklama
invalid_app_keyGeçersiz App Key
invalid_app_secretGeçersiz App Secret
challenge_expiredChallenge süresi doldu
challenge_not_foundChallenge bulunamadı
invalid_answerGeçersiz yanıt
token_expiredToken süresi doldu
token_already_usedToken zaten kullanıldı
token_not_foundToken bulunamadı
quota_exceededKota aşıldı
rate_limitedHız sınırına ulaşıldı
rate_limit_exceededBu uygulama için çok fazla düzenleme isteği. Geri çekilip yeniden deneyin.

MIT-licensed examples · CaptchaLa is operated independently