Ready-to-use code for integrating license validation into your applications
const crypto = require('crypto');
const os = require('os');
class LicenseValidator {
constructor(apiUrl) {
this.apiUrl = apiUrl.replace(/\/$/, '');
}
generateFingerprint() {
const components = [
os.hostname(),
os.platform(),
os.arch(),
os.type(),
];
const fingerprintString = components.join('|');
return crypto.createHash('sha256')
.update(fingerprintString)
.digest('hex');
}
async validate(licenseKey, fingerprint = null) {
const deviceFingerprint = fingerprint || this.generateFingerprint();
try {
const response = await fetch(`${this.apiUrl}/api/validate`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ licenseKey, fingerprint: deviceFingerprint }),
});
const data = await response.json();
return {
valid: data.valid,
error: data.error || null,
license: data.license || null,
fingerprint: deviceFingerprint,
};
} catch (error) {
return {
valid: false,
error: error.message,
license: null,
fingerprint: deviceFingerprint,
};
}
}
}
// Usage
const validator = new LicenseValidator('https://licvalidator.com');
const result = await validator.validate('XXXX-XXXX-XXXX-XXXX');
console.log(result.valid ? '✓ Valid' : '✗ Invalid');No dependencies required - uses Node.js built-in modules
All code samples now support offline license validation! Validate licenses without internet connectivity using cryptographic signatures.
validateOffline() for local validationvalidateWithFallback() for hybrid approachCreates a unique identifier based on hardware and system properties
Sends license key and fingerprint to the validation API endpoint
Returns validation status and license information or error details