Alan Adı Doğrulama Kancaları

1.6k görüntülenme Markdown

Kayıt sahibi doğrulaması ve sağlayıcıdan okuma yapan sekiz kanca — okumanın bile kendi kapısı vardır.

Genel Bakış

Bazı uzantılar kayıt sahibinin kimliğini belgeyle doğrulamasını ister. Doğrulanmayan ad askıya alınabilir, o yüzden bu akışın kendi kancaları vardır: gönderimi durduran bir kapı, sonucunu bildiren bir olay ve ekranın tamamını veren bir filtre.

İkinci grup daha az bilinir: okuma kapıları. Ad sunucusu ya da kişi bilgisi okumak sağlayıcıya gerçek bir istek demektir, o yüzden okumanın da önünde bir kapı durur.

Referans

Doğrulama gönderimini durdurma

gatedomain.verification_submit
ClientDomains dosya işlenmeden

Gönderilen belgeler işlenmeden ve hiçbir şey kaydedilmeden çalışır.

Parametreler 3
$servicearrayAlan adı hizmet kaydı.
$defsarrayUzantının istediği alan tanımları: her biri key, type, name, required, options. Tanımlar uzantıya ve modüle göre değişir.
$tldstringAdın uzantısı.
Dönüş 1
stringBoş olmayan bir string gönderimi durdurur; hiçbir dosya işlenmez ve hiçbir alan yazılmaz.
Dinleyici
Hook::add('gate:domain.verification_submit', 10, function ($service, $defs, $tld) {
    // Ayni ad icin acik bir inceleme varken ikinci gonderim karisiklik yaratir.
    if (Acme::reviewOpen((int) ($service['id'] ?? 0)))
        return 'Onceki gonderiminiz hala inceleniyor.';

    return null;
});

Doğrulama gönderimini izleme

actiondomain.verification_submitted
ClientDomains kaç alan yazıldı

Belgeler işlenip alanlar kaydedildikten sonra çalışır.

Parametreler 3
$servicearrayAlan adı hizmet kaydı.
$submittedintBaşarıyla kaydedilen alan sayısı. Sıfır olabilir: gönderim yapıldı ama hiçbir alan yazılmadı demektir.
$defsarrayUzantının alan tanımları.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.verification_submitted', 10,
    function ($service, $submitted, $defs) {
        // Sifir alan yazildiysa gonderim bos gecmistir: incelemeye dusmesin.
        if ($submitted > 0) Ops::queue('registrant-review', $service['id'] ?? 0);
    });

Doğrulama ekranını değiştirme

filterdomain.verification_state
Hook::runRefs üç anahtar korunur

Doğrulama ekranının tüm yükü hazırlandıktan sonra, görünmeden önce çalışır.

Parametreler 2
$dataarrayrefEkran yükü: state (none, form, review, rejected, verified), fields, operator_note. state hangi kabuğun gösterileceğini seçer; üç anahtarı da bırakın.
$servicearrayAlan adı hizmet kaydı.
Dönüş 1
voidDeğer referansla değişir; dönüş kullanılmaz.
Dinleyici
Hook::add('filter:domain.verification_state', 10, function (&$data, $service) {
    // state/fields/operator_note ucunu de birak; JS kabugu state'e gore secer.
    if (($data['state'] ?? '') === 'rejected')
        $data['operator_note'] = Acme::helpText($data['operator_note'] ?? '');
});

Kişi okumasını durdurma

gatedomain.contacts_get
AdminServices salt okuma

Kişi bilgileri sağlayıcıdan okunmadan önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$serviceIdintHizmet kimliği.
Dönüş 1
stringBoş olmayan bir string okumayı durdurur; metin hata olarak fırlatılır ve sağlayıcıya gidilmez.
Dinleyici
Hook::add('gate:domain.contacts_get', 10, function ($service, $serviceId) {
    // Saglayici sorgu basina ucret aliyorsa okumayi sinirlayin.
    if (Acme::readQuotaSpent($serviceId)) return 'Bugunku sorgu hakki doldu.';

    return null;
});

Okunan kişi bilgisini izleme

actiondomain.contacts_fetched
AdminServices sağlayıcıdan geldi

Kişi bilgileri sağlayıcıdan okunduktan sonra çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$whoisarraySağlayıcıdan okunan kişi verisi.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.contacts_fetched', 10, function ($service, $whois) {
    // Kisisel veri: loglamayin, yalniz ayrisma var mi diye bakin.
    Acme::compareMirror((int) ($service['id'] ?? 0), $whois);
});

Ad sunucusu okumasını durdurma

gatedomain.nameservers_get
AdminServices salt okuma

Ad sunucuları sağlayıcıdan okunmadan önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$serviceIdintHizmet kimliği.
Dönüş 1
stringBoş olmayan bir string okumayı durdurur; metin hata olarak fırlatılır ve sağlayıcıya gidilmez.
Dinleyici
Hook::add('gate:domain.nameservers_get', 10, function ($service, $serviceId) {
    if (($service['status'] ?? '') === 'transfer')
        return 'Transfer surerken ad sunuculari okunamaz.';

    return null;
});

Okunan ad sunucularını izleme

actiondomain.nameservers_fetched
AdminServices normalleştirilmiş liste

Ad sunucuları sağlayıcıdan okunduktan sonra çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$nameserversarrayOkunan liste, normalleştirilmiş ve sıralı.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.nameservers_fetched', 10, function ($service, $nameservers) {
    // Saglayicidaki deger bizimkinden farkliysa ayrisma var demektir.
    Acme::driftCheck((int) ($service['id'] ?? 0), $nameservers);
});

DNS kaydı okumasını durdurma

gatedomain.dns_records_get
AdminServices salt okuma

DNS kayıtları sağlayıcıdan okunmadan önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$serviceIdintHizmet kimliği.
Dönüş 1
stringBoş olmayan bir string okumayı durdurur; metin hata olarak fırlatılır ve sağlayıcıya gidilmez.
Dinleyici
Hook::add('gate:domain.dns_records_get', 10, function ($service, $serviceId) {
    // DNS yonetimi ek hizmeti yoksa okuma da anlamsizdir.
    if (!Acme::addonActive($serviceId, 'dns-manage')) return 'DNS yonetimi kapali.';

    return null;
});

Tuzaklar

Okuma kapısı ekranı boş bırakır

Okumayı durdurmak yalnız isteği kesmez: ekranda o bölüm hiç dolmaz ve müşteri ya da operatör nedenini anlamayabilir. Döndürdüğünüz metin kullanıcıya gösterilir, o yüzden neyin neden durdurulduğunu o cümlede söyleyin.

Okunan kişi verisi kişisel veridir

Kişi okuma kancası size ad, adres, telefon ve e-posta verir. Bunu loglara, dış sistemlere ya da bildirim gövdelerine koymayın. Karşılaştırma yapmanız gerekiyorsa değerleri değil, farkın var olup olmadığını saklayın.

Doğrulama ekranı üç anahtardan kurulur

Ekran kabuğunu state seçer; alanları fields doldurur; ret gerekçesini operator_note taşır. Birini düşürmek ekranı bozar: örneğin state olmadan hangi kabuğun görüneceği bilinemez.

Sıfır alan da bir gönderimdir

Doğrulama olayı, hiçbir alan yazılmadığında da çalışır ve sayacı 0 gelir. Sayıyı okumadan "belge geldi" varsaymak, boş bir gönderimi incelemeye düşürür.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.