Plugin offline authorisation with serial number

I’ve just studied juce tutorial: tutorial_online_unlock_status
And there is shown how to set online authorisation.
But it looks like user need to be online every time always app is opened. At least after that tutorial the testapp works like that.

But as I found many plugins on the market can be authorised without internet connection. I wonder if there is any solution for such authorisation in JUCE framework.

The tutorial on product unlocking is a bit incomplete as it doesn’t mention the offline part, although OnlineUnlockStatus supports it, in a sense that an interface is designed to accommodate offline activation feature while leaving its implementation to the user. The big picture is that the server returns a signature of the user’s device ID, and the client side stores this signature. On the following startups, the client verifies this signature using the public key and check if device ID matches.

1 Like


Did you ever resolve this and would like to share your code? I’m also looking in to unlocking with a serial and then storing it on a local file so the user doesn’t have to be online anymore.

Yes I solved it in my way. I can’t share the code. At first it is my sweet secret :slight_smile:
But it is also a lot of code, I think too much to share it on the forum. But I can try to explain my solution.
I give in my plugins option to authorise my plugin when user is online. And that works the same as shown in mentioned tutorial

And I also give give option to authorise plugin when user is offline. But actually user still need to have access to internet, but smartphone is enough. And the procedure is:

  1. User need to click in plugin “Offline registration”
  2. Then my plugin generates some short code (6 characters) which is based on user’s computer unique ID. To be more specific: my plugin gets the user unique machine ID, and with my special (and of course secret :slight_smile: ) algorithm I make some ciphering to achieve 6 characters code.
  3. then user need smartphone or iPad (anything with internet). And launch my website, login and then fill form with generated 6 characters code.
  4. on my website works the same secret algorithm to decipher code, and with similar algorithm generate next code which I call PIN while it has only 4 characters.
  5. user need to use that PIN in his plugin.
  6. my plugin check if PIN is OK. And if yes, then my plugin generates authorisation file.
  7. And every time my plugin is launched it checks that authorisation file on the computer drive, and if it exists, and of course includes some special code (ciphered unique machine ID), then the plugin is unlocked.

And that’s it. Of course in short words.

I am happy with that solution, and I my clients don’t complain.
The problem with that solution is that sometimes when user update his system, or buy new computer then in most cases there is new unique machine ID, so user need to authorise the plugin again.


Hey! Thank you so much for responding! I’m actually looking at a solution called keyzy which handles most of these functions, your answer helps me a lot in understanding.

Will report back when i have the code running! :slight_smile:

1 Like

+1 for keyzy!

Hey Gustav,

Do you have working code to unlock with keyzy?



Yes, but nothing to share because it’s for commercial products. Anyway, it wasn’t hard to integrate and the support is great!

Ah damn, anything you could share would be highly appreciated, without keys off course :smiley: