Hızlı Başlangıç

Bir dakikadan kısa sürede çalışır duruma gelin.

1Bir Site Oluşturun

BenEgeDeniz ID'niz ile giriş yapın ve panelde yeni bir site oluşturarak site anahtarınızı ve gizli anahtarınızı alın.

2Widget'ı Ekleyin

Forge scriptini dahil edin ve widget div'ini formunuzun içine yerleştirin.

<script src="https://forge.benegedeniz.com/widget/forge.js" async defer></script>

<form action="/submit" method="POST">
    <div class="forge-captcha" data-sitekey="YOUR_SITEKEY"></div>
    <button type="submit">Submit</button>
</form>
3Sunucu Tarafında Doğrulayın

Form gönderildiğinde, token'ı gizli anahtarınızla doğrulama API'mize gönderin.

İstemci Tarafı

Otomatik Oluşturma

Widget, forge-captcha sınıfına sahip tüm elementlerde otomatik olarak oluşturulur.

<div class="forge-captcha" data-sitekey="YOUR_SITEKEY"></div>
JavaScript API

Programatik kontrol için ForgeCaptcha global nesnesini kullanın.

// Programmatic rendering
const widgetId = ForgeCaptcha.render('#my-container', {
    sitekey: 'YOUR_SITEKEY',
    callback: function(token) {
        console.log('Verified:', token);
    },
    'error-callback': function() {
        console.log('Challenge failed');
    }
});

// Get the response token
const token = ForgeCaptcha.getResponse(widgetId);

// Reset the widget
ForgeCaptcha.reset(widgetId);
Data Özellikleri
Özellik Tip Açıklama
data-sitekeystringSitenizin genel anahtarı (zorunlu).
data-callbackstringBaşarılı olduğunda token ile çağrılan global fonksiyon adı.
data-error-callbackstringHata durumunda çağrılan global fonksiyon adı.
data-themestring"light", "dark" veya "auto" (varsayılan: otomatik algılama).

Drop-In Entegrasyon

BenEgeDeniz Forge, diğer popüler captcha servisleri için %100 uyumlu bir Drop-In alternatifi olarak çalışır. Aşağıdaki servislerden herhangi birini kullanan bir sisteminiz varsa, HTML elementinizi veya sunucu doğrulama değişkenlerinizi değiştirmeden geçiş yapabilirsiniz.

reCaptcha
<div class="g-recaptcha">
Turnstile
<div class="cf-turnstile">
hCaptcha
<div class="h-captcha">

Sunucu Tarafı

Widget bir token oluşturduktan sonra, isteği işlemeden önce sunucunuzda doğrulayın.

PHP
$response = file_get_contents('https://forge.benegedeniz.com/api/siteverify', false,
    stream_context_create(['http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/json',
        'content' => json_encode([
            'secret' => 'YOUR_SECRET_KEY',
            'response' => $_POST['forge-captcha-response'],
            'remoteip' => $_SERVER['REMOTE_ADDR'],
        ]),
    ]])
);

$result = json_decode($response, true);
if ($result['success']) {
    // User verified - process the form
}
Node.js
const res = await fetch('https://forge.benegedeniz.com/api/siteverify', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        secret: process.env.FORGE_SECRET_KEY,
        response: req.body['forge-captcha-response'],
    }),
});

const data = await res.json();
if (data.success) {
    // User verified
}
cURL
curl -X POST https://forge.benegedeniz.com/api/siteverify \
  -H "Content-Type: application/json" \
  -d '{"secret":"YOUR_SECRET","response":"TOKEN_FROM_WIDGET"}'

API Referansı

POST /api/challenge

Yeni bir PoW meydan okuması talep edin. Widget tarafından dahili olarak kullanılır.

İstek Gövdesi
{ "sitekey": "your-site-uuid" }
Yanıt
{
    "success": true,
    "challenge_id": "uuid",
    "salt": "hex-string",
    "difficulty": 20,
    "algorithm": "SHA-256",
    "expires_at": "2025-01-01T00:00:00Z"
}
POST /api/siteverify

Bir captcha token'ını doğrulayın. Gizli anahtarınızla sunucunuzdan çağırın.

İstek Gövdesi
{
    "secret": "your-secret-key",
    "response": "token-from-widget",
    "remoteip": "optional-client-ip"
}
Yanıt
{
    "success": true,
    "challenge_ts": "2025-01-01T00:00:00+00:00",
    "hostname": "example.com"
}

Yapılandırma

Panelden sitenizin zorluk seviyesini yapılandırın.

Ayar Varsayılan Aralık Açıklama
Zorluk 20 10–28 SHA-256 hash'inde gereken ön sıfır bit sayısı. Yüksek değerler = daha zor meydan okumalar.
Zorluk Rehberi
  • 10–14: Çok hafif koruma (~10ms). Düşük riskli formlar için uygun.
  • 15–20: Dengeli koruma (~200-500ms). Çoğu kullanım için önerilir.
  • 21–28: Ağır koruma (~2-30s). Yüksek güvenlikli veya hız sınırlı uç noktalar için.