在 NW.JS 下的 OSX 中获取任何类型的唯一标识符

Get ANY kind of unique identifier in OSX under NW.JS

我正在 NW.JS 中编写应用程序,需要能够将应用程序锁定到特定机器。我希望能够以编程方式获取每台机器唯一的任何类型的字符串或值。

我曾尝试使用这个 https://www.npmjs.com/package/serial-number,它似乎可以工作,直到我在两台机器上尝试它,两台机器都为 CPU 生成了相同的序列号。我已经尝试通过硬件 MAC 地址和许多其他插件进行识别,这些插件现在都被标记为“折旧”。

我了解到苹果以隐私问题为由锁定了 OSX 安装上的任何唯一标识符。

现在有没有什么我还没有找到的方法可以采用?我听说有人在他们的应用程序首次启动时随机生成一个字符串,并以某种方式将其放入钥匙串中,但我真的不明白在 NW.JS 中如何做到这一点。

有人知道怎么做吗?

这是我的工作代码的一个片段(它使用 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

    });

注意:我现在无法在 Mac 上进行测试。