相关疑难解决方法(0)

在JavaScript中创建GUID/UUID?

我正在尝试在JavaScript中创建全局唯一标识符.我不确定所有浏览器上有哪些例程,"随机"和内置随机数生成器的种子等等.

GUID/UUID应至少为32个字符,并应保持在ASCII范围内,以避免传递它们时出现问题.

javascript uuid guid

3915
推荐指数
46
解决办法
166万
查看次数

Javascript Web 应用程序上的唯一 DeviceID(Angular、React...)

我有一个特定的需求,这给我带来了一些困难。基本要求是:我们需要通过一个 ID 唯一地标识设备(可以是 PC、Mac、平板电脑、手机),就像 IMEI 一样……由于某些应用程序的某些许可限制,因此需要这样做。

\n

挑战:我们正在运行 Angular,而浏览器几乎不可能唯一地识别设备。由于我们位于浏览器沙箱中,我没有机会获得 Mac 地址之类的信息或任何可以作为定义唯一 ID 的良好开端的信息。

\n

到目前为止我们尝试过的:

\n
    \n
  • MediaDeviceInfo.deviceIdhttps://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo/deviceId

    \n
      \n
    • 一方面,在我在 Chrome 上进行的第一次测试中,它是空的,而且 Safari 不支持它......
    • \n
    \n
  • \n
  • Valve\xc2\xb4s FingerprintJS2https://valve.github.io/fingerprintjs2/

    \n
      \n
    • 乍一看,我们认为我们中了大奖,因为它正确生成了相同的 ID,即使我从匿名窗口调用它!但是,它仍然为不同的浏览器生成另一个 ID...
    • \n
    • 基本上它的工作原理是枚举所有浏览器功能(至少是可访问的功能),然后创建该功能的哈希值...问题:如果您拥有配置完全相同的设备,它们将具有相同的 ID!我在 2 部配置相同、甚至是同一天购买的 iPhone 上尝试过!:-)
    • \n
    \n
  • \n
  • 创建 UID 并保存在本地存储上:创建一个 UID(如何在 Angular 6 中生成 UUID)并将其存储在本地存储上。我们路上遇到的一些问题:

    \n
      \n
    • 如果我打开一个匿名窗口,当然 LocalStorage 不会在那里,这意味着我会得到一个新的“UUID”
    • \n
    • 除此之外,我们还有一些单独的角度应用程序,它们需要共享本地存储,但由于 SameOrigin 安全限制,这是不可能做到的。我们可以使用 iFrame 和 PostMessage ( https://levelup.gitconnected.com/share-localstorage-sessionstorage- Between- different- domains-eb07581e9384 ) 来克服它。实际上有一些 NPM …

javascript angular

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

angular ×1

guid ×1

uuid ×1