小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
需求
绝大多数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只是针对当前设备的,真实开发中,只能用作临时记录用户的操作,最终还是需要引导用户登录并合并数据。