Bu sayfa Manifest V3 tabanlı Chrome/Chromium eklentilerinde lisans anahtarı alma, sunucuya aktivasyon gönderme, cihaz kimliğini sabit tutma, lisans sonucunu saklama ve belirli aralıklarla yeniden doğrulama akışını anlatır.
Eklenti kullanıcıdan lisans anahtarını alır ve bu sunucunun Activation Endpoint adresine gönderir. Sunucu lisans anahtarını, ürün kodunu, bitiş tarihini, durumunu ve aktivasyon limitini kontrol eder. Aynı kurulum için sabit bir install_id kullanıldığı sürece tekrar kontrol yapmak yeni cihaz slotu tüketmez.
Kullanıcı lisans anahtarı→Eklenti→MEDPOV API→Doğrulama→Aktif / Hata
Önemli:Eklentide gönderilen product değeri paneldeki Default product slug ile birebir aynı olmalıdır: medpov-google-extension.
02
Manifest V3 izinlerini ekle
chrome.storage.local kullanabilmek için storage izni; lisans sunucusuna istek gönderebilmek için de sunucu origin'i host_permissions altında tanımlanmalıdır.
Mevcut manifest dosyana yalnızca eksik alanları ekle. Var olan permissions, background veya host_permissions alanlarını silme.
03
Ortak aktivasyon modülünü oluştur
Aşağıdaki kodu örneğin license.js dosyasına koyabilirsin. Buradaki install_id ilk çalıştırmada bir kez üretilir ve Chrome local storage içinde saklanır. Bu değer silinmediği sürece aynı bilgisayar aynı aktivasyon olarak görülür.
Birden fazla JS dosyası kullanıyorsan Manifest V3 yapına göre modül import/export veya tek bundle tercih edebilirsin.
05
Başarılı API cevabı
Aktivasyon başarılı olduğunda sunucu aşağıdaki alanları döndürür. Eklentinin özelliklerini açarken en az ok, status, product ve gerekiyorsa expires_at alanlarını dikkate al.
license_tokenBaşarılı aktivasyonda üretilen oturum/aktivasyon tokenı.
data_keyLisans başarılıysa teslim edilen eklenti veri anahtarı.
expires_atnull ise lisansın bitiş tarihi yoktur.
max_activationsLisansın izin verdiği toplam kurulum sayısıdır.
06
Lisansı belirli aralıklarla yeniden doğrula
Lisansı yalnızca ilk kurulumda kontrol etmek yerine eklenti açılışında cache kullanıp örneğin 24 saatte bir sunucuya yeniden doğrulama göndermek daha sağlıklı olur. Sabit install_id sayesinde bu istek yeni aktivasyon oluşturmaz.
Kontrol sıklığını API rate limit değerine göre seç. Her sayfa açılışında tekrar tekrar aktivasyon isteği göndermek yerine cache kullan.
07
Hata ve durum yönetimi
403Lisans pasif, süresi dolmuş, ürün uyuşmuyor veya aktivasyon limiti dolmuş olabilir.
404Lisans anahtarı bulunamadı.
422Lisans anahtarı veya product gibi zorunlu alanlar geçersiz/eksik.
429Çok fazla istek gönderildi; kullanıcıya daha sonra tekrar denemesini söyle.
500Sunucu yapılandırması eksik olabilir. Kullanıcı tarafında sınırsız retry döngüsü oluşturma.
Lisans geçersiz olduğunda premium/korunan özelliği kapat; ancak kullanıcı arayüzünde lisans anahtarını düzeltmesi veya yenilemesi için anlaşılır bir yol bırak.
08
Güvenlik kuralları
Admin e-posta/şifresini, private config dosyasını veya sunucu gizli değerlerini eklentiye koyma.
install_id her aktivasyon denemesinde yeniden üretilmemeli; aksi halde aynı kullanıcı aktivasyon limitini tüketir.
Lisans anahtarını loglara, analytics eventlerine veya hata raporlarına düz metin olarak gönderme.
chrome.storage.local şifreli kasa değildir. Hassas verileri gereğinden uzun süre saklama ve kaynak kodda gerçek secret tutma.
Eklentinin sadece local cache değerine güvenip sonsuza kadar çalışmasına izin verme; periyodik sunucu kontrolü yap.
Endpoint ve product slug public olabilir; yönetim erişimi ve private server config kesinlikle public olmamalıdır.