获取设备唯一值

1,243 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

需求

绝大多数APP或者项目都是有登录的需求的,用户的登录状态可以帮我们对每个用户提供定制化的服务,上到大数据的推广,用户分析;下到一个博客网站的用户阅读,收藏,写作。

因为登录这个功能,让网站可以分辨出每个用户个体。

那如果不做登录呢?或者说用户一时还不想登录呢?

总所周知,我们的电脑都是有一个IP的,不过IP这个东西是会变化的,尤其是内网(局域网时)。那如何为一个暂时不想登录的用户提供一些有限的定制服务呢?

当然是想办法为当前用户记录一个唯一值

如果是APP项目,可以使用H5+ api提供的plus.device.getInfo,获取用户设备的uuid

plus.device.getInfo(
  success: e => { 
    console.log(e.uuid)
  }
)

那么问题来了,APP项目可以直接调用现成的API,那么如果是Web项目,或者H5项目呢?

这里就需要借用到一个第三方库fingerPrintJS。想了解这个库的小伙伴可以在github中找到

import FingerprintJS from '@fingerprintjs/fingerprintjs';

const fpPromise = FingerprintJS.load();
const fp = await fpPromise;

const result = await fp.get();
uniqueId = result.visitorId;

到这里为止,就可以为一个未授权的用户标记为一个特定的id,但这个id只是针对当前设备的,真实开发中,只能用作临时记录用户的操作,最终还是需要引导用户登录并合并数据。