Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arunahk/license-key-gen
Generate license keys for given company details
https://github.com/arunahk/license-key-gen
chai license-generator licensing mocha nodejs
Last synced: about 1 month ago
JSON representation
Generate license keys for given company details
- Host: GitHub
- URL: https://github.com/arunahk/license-key-gen
- Owner: arunahk
- License: mit
- Created: 2018-04-16T04:28:52.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T19:37:19.000Z (about 2 years ago)
- Last Synced: 2024-12-09T06:23:22.730Z (about 1 month ago)
- Topics: chai, license-generator, licensing, mocha, nodejs
- Language: JavaScript
- Homepage:
- Size: 379 KB
- Stars: 71
- Watchers: 5
- Forks: 29
- Open Issues: 13
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/arunahk/license-key-gen.svg?branch=master)](https://travis-ci.org/arunahk/license-key-gen)
# license-key-gen
- Generate license keys for given company details
- The [license-key-gen](https://www.webisto.tech) library exported as [Node.js](https:nodejs.org/) modules.## Source
This project has been imported from [license-key-gen](https://www.npmjs.com/package/license-key-gen) in npm.org.## Docs
Generate a License Key and validate the license. This is typically used for software licensing (serial number).
## Installation
```
npm install license-key-gen
```## Data Structure
To create a license key - Enter the users information that your are able to recieveThis object can be any data you wish to tie the license to - format Object
```
var userInfo = {company:"webisto.tech",street:"123 licenseKey ave", city:"city/town", state:"State/Province", zip:"postal/zip"}
```
Must include:
1) ProductCode (string) - product abbr name, can be any size
2) AppVersion (string) - optional if you want to tie the license to a version number
3) osType (string) - lock the license to a specific operating system
supported:
Windows: WIN, WIN7, WIN8,WIN10
Macintosh: OSX, OSX1, OSX2, OSX3, OSX4, OSX5, OSX6, OSX7, OSX8, OSX9, OSX10, OSX11, OSX12
Apple Mobile: IOS, IOS5, IOS6, IOS7, IOS8, IOS9,IOS10
Google Mobile: ANDROID, ANDROID2, ANDROID3, ANDROID4, ANDROID43, ANDROID44, ANDROID5, ANDROID6, ANDROID7
OTHER```
var userLicense = {info:userInfo, prodCode:"LEN100120", appVersion:"1.5", osType:'IOS8'}
```## Init
```
var licenseKey = require('license-key-gen');
```## Create a License Key
Then run the following code to recieve the License for the client
This function to be run ONLY for you to generate the license code for the client
```
var licenseKey = require('license-key-gen');var userInfo = {company:"webisto.tech",street:"123 licenseKey ave", city:"city/town", state:"State/Province", zip:"postal/zip"}
var licenseData = {info:userInfo, prodCode:"LEN100120", appVersion:"1.5", osType:'IOS8'}try{
var license = licenseKey.createLicense(licenseData)
console.log(license);
}catch(err){
console.log(err);
}
```if success returns
```
{ errorCode: 0, message: 'ok', license: 'W0247-4RXD3-6TW0F-0FD63-64EFD-38180' }
```if error, returns
```
{ errorCode: 1002, message: 'product code missing' }
```## Validate a License Key
On client side your application will pass the user information (Data Structure) and License Key:
```
var licenseKey = require('license-key-gen');var userInfo = {company:"webisto.tech",street:"123 licenseKey ave", city:"city/town", state:"State/Province", zip:"postal/zip"}
var licenseData = {info:userInfo, prodCode:"LEN100120", appVersion:"1.5", osType:'IOS8'}try{
var license = licenseKey.validateLicense(licenseData, "W0247-4RXD3-6TW0F-0FD63-64EFD-38180");
console.log(license);
}catch(err){
console.log(err);
}
```
if success returns
```
{ errorCode: 0, message: 'ok' }
```if error, returns
```
{ errorCode: 1006, message: 'license not valid' }
```## TODO
- maintain (save, delete, update, read) licenses and user registration information## Support
Tested in Chrome 53-54, Firefox 48-49, IE 11, Edge 14, Safari 9-10, Node.js 6-7, & PhantomJS 2.1.1.
Automated test runs are available.