2017-09-17 4 views
0

J'écris une application dans NW.JS et j'ai besoin de pouvoir verrouiller l'application sur des machines spécifiques. J'aimerais pouvoir programmer n'importe quel type de chaîne ou de valeur unique par machine.Obtenez n'importe quel type d'identifiant unique sous OSX sous NW.JS

J'ai essayé d'utiliser ce https://www.npmjs.com/package/serial-number qui semblait fonctionner jusqu'à ce que je l'ai essayé sur deux machines où les deux machines généraient le même numéro de série pour le CPU. J'ai essayé d'identifier via l'adresse MAC matérielle et de nombreux autres plugins qui sont tous étiquetés "dépréciés".

J'ai lu que Apple a verrouillé tous les identifiants uniques sur une installation OSX en invoquant des raisons de confidentialité.

Y a-t-il une sorte d'approche que nous pouvons prendre maintenant que je n'ai pas encore trouvé? J'ai entendu des gens générer aléatoirement une chaîne au premier démarrage de leur application et en quelque sorte la mettre dans le trousseau, mais je ne comprends vraiment pas comment cela se ferait dans NW.JS.

Est-ce que quelqu'un sait comment faire cela?

Répondre

2

Voici un extrait de mon code de travail (il utilise https://github.com/scravy/node-macaddress):

const macaddress = require('macaddress'); 
    macaddress.one((err, macAddress) => { 

     let hardwareStr = JSON.stringify({ 
      os: os.platform(), 
      hostname: os.hostname(), 
      mac: macAddress || 'n/a' 
     }); 

     let id = crypto.createHash('sha256') 
         .update(hardwareStr) 
         .digest('hex'); 

     // now id is machine-specific identifier without any sensitive information 

    }); 

Note: Je ne peux pas tester dès maintenant sur Mac.