你得直接让客户端生成唯一,但是Web浏览器不允许访问底层硬件信息。不过可以使用一些前端技巧来生成一个伪唯一标识。
一种方法是使用网页存储(localStorage或sessionStorage)来存储一个生成的UUID,如果该UUID不存在,则生成一个新的并存储在网页存储中,否则就直接使用存储的UUID。这种方法的缺点是如果用户清除了浏览器数据,UUID也将被清除
另一种方法是使用网页指纹(fingerprint)技术,该技术可以通过收集浏览器、设备和操作系统等信息生成一个经过哈希处理的唯一识别码。你可以使用"https://github.com/fingerprintjs/fingerprintjs"
这个库纯前端实现的浏览器指纹采集器,通过获取浏览器中所有能获取到的信息(部分通过base64转成String),最后生成出md5,用于该用户在该设备上的唯一标识码,准确度99.5%,够用了