We use Obsidium protection system and from all those tested it is.the best. Examples on how to make a web base license system and easy tools to generate license codes.
I must admit that used on c++ but from the web site it seems that any kind of module can be protected.
Not so expensive as a bonus.
I must underline that making a robust protection system can take so much time,effort and energy with potential bugs that can make your customers unhappy, the reason why better to use a third party tool or no protection at all.
Gd