A minimal Electron v12 + React v17 app built with Parcel, showcasing how to implement an in-app software licensing portal with the following functionality:
- License key validation
- Device fingerprinting and activation
- Device management
Visit your dashboard and create a new policy with the following attributes:
{
"requireFingerprintScope": true,
"maxMachines": 5,
"concurrent": false,
"floating": true,
"strict": true
}
The maxMachines
value can be whatever you prefer. The example should
also work for a non-floating policy.
In order to allow a license to perform machine activations and deactivations, you will need to create a new activation token. Activation tokens allow a limited number of machine activations for a single license, which make them ideal for performing activations from a client-side environment.
metadata
attribute under the token
key:
{
"metadata": {
"token": "activ-abc8f8323c680b93082fc5fdb3abcb31v3"
}
}
We're doing this so that the end-user does not need to worry about entering the activation token, or that it even exists. Alternatively, you could adjust the code to prompt the user for this value, similary to how we're already prompting for their license key.
First up, configure a couple environment variables:
# Your Keygen account ID
export KEYGEN_ACCOUNT_ID="YOUR_KEYGEN_ACCOUNT_ID"
These environment variables will be automatically inlined into the
application's source code during the build process. You can either run
each line above within your terminal session before building the app,
or you can add the above contents to your ~/.bashrc
file and then
run source ~/.bashrc
after saving the file.
Next, install dependencies with yarn
:
yarn
Then start the app in dev mode:
yarn dev
To build the app:
yarn build
To run the latest build:
yarn start
To package the app:
yarn dist
Reach out at [email protected] if you have any questions or concerns!