@bilmarkltd/license-sdk
v1.0.0
Published
Bilmark License Manager - Offline License Validation SDK
Downloads
30
Maintainers
Readme
Bilmark License SDK
Bilmark License Manager için offline lisans doğrulama SDK'sı.
Kurulum
npm install @bilmarkltd/license-sdkHızlı Başlangıç
1. Hardware ID Alma
Lisans oluştururken hardware binding kullanmak istiyorsanız, önce sunucunun hardware ID'sini alın:
import { getHardwareId } from '@bilmarkltd/license-sdk';
const hardwareId = await getHardwareId();
console.log('Hardware ID:', hardwareId);
// Bu ID'yi lisans oluştururken License Manager'a gönderin2. Lisans Doğrulama
import { LicenseValidator } from '@bilmarkltd/license-sdk';
const validator = new LicenseValidator();
// Dosyadan doğrulama
const result = await validator.validateFile('./license.lic');
if (result.valid) {
console.log('Lisans geçerli!');
console.log('Ürün:', result.license.productName);
console.log('Müşteri:', result.license.customerName);
console.log('Kalan gün:', result.license.daysRemaining);
} else {
console.error('Lisans hatası:', result.error);
process.exit(1);
}3. Limit Kontrolü
// Kullanıcı sayısı kontrolü
const userCheck = validator.checkLimit(result, 'maxUsers', 45);
if (!userCheck.allowed) {
console.error(`Kullanıcı limiti aşıldı: ${userCheck.current}/${userCheck.limit}`);
}
// Rapor sayısı kontrolü
const reportCheck = validator.checkLimit(result, 'maxReports', 100);4. Modül Kontrolü
if (validator.hasModule(result, 'finance')) {
// Finans modülü aktif
enableFinanceFeatures();
}
if (validator.hasModule(result, 'hr')) {
// HR modülü aktif
enableHRFeatures();
}Hardware Binding
Lisansı belirli bir sunucuya kilitlemek için:
- Sunucuda hardware ID alın
- Bu ID'yi License Manager'da lisans oluştururken kullanın
- Validator'da hardware binding kontrolünü aktif edin:
const validator = new LicenseValidator({
checkHardwareBinding: true
});Public Key Yapılandırması
SDK'yı kullanmadan önce public key'i yapılandırmanız gerekir.
Seçenek 1: Embedded Key (Önerilen)
src/public-key.ts dosyasındaki EMBEDDED_PUBLIC_KEY değerini License Manager'dan alınan public key ile değiştirin.
Seçenek 2: Runtime Key
const validator = new LicenseValidator({
publicKey: `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqh...
-----END PUBLIC KEY-----`
});API Referansı
LicenseValidator
Constructor
new LicenseValidator(options?: ValidatorOptions)Options:
publicKey?: string- Public key (PEM format)checkHardwareBinding?: boolean- Hardware binding kontrolü
Metodlar
validateFile(filePath: string): Promise<ValidationResult>- Dosyadan doğrulamavalidate(content: string): Promise<ValidationResult>- String'den doğrulamacheckLimit(result, key, currentValue): LimitCheckResult- Limit kontrolühasModule(result, moduleCode): boolean- Modül kontrolü
ValidationResult
interface ValidationResult {
valid: boolean;
error?: string;
license?: {
licenseKey: string;
productCode: string;
productName: string;
customerName: string;
expiresAt: Date | null;
limits: Record<string, any>;
modules: string[];
daysRemaining: number | null;
isExpired: boolean;
};
}Güvenlik
- Private key ASLA client uygulamasında bulunmamalıdır
- Public key embed edilebilir (güvenli)
- Lisans dosyası manipüle edilirse imza doğrulama başarısız olur
