javascript - 我需要在 node.js 中创建唯一 ID 而无需注册
问题描述
当用户未登录或注册时,我需要在 node.js 中接收唯一 ID。我使用的request-ip
包也使用过req.headers['x-forwarded-for']
, req.connection.remoteAddress
但是这些命令中的 IP 因 Internet 而异,并且不是每个浏览器唯一的
解决方案
您可以为您的应用程序创建一个中间件。在此中间件中,检查用户是否未登录并且请求不包含某些特殊标头(例如["first-token"]
),然后创建一个大的随机字符串:
const token = crypto.randomBytes(64).toString('hex');
并将其发送给您的客户。例如:
res.json({firstToken: token, /*Other fields you may need to send*/});
然后在您的客户端将其存储在 cookie 或本地存储中。
曲奇饼:
document.cookie = document.cookie + "; firstToken=" + firstToken
本地存储:
localStorage.setItem("firstToken", firstToken);
之后,您应该在发送到服务器的每个请求中发送此 cookie。在此示例中的["first-token"]
标题中。
通过这种方式,您可以为用户分配一个唯一的随机字符串,并且在他们清除浏览器数据之前不要更改它。
推荐阅读
- r - 如何编辑依赖 plyr 与 dplyr 兼容的自定义函数?
- python - 使用子图和热图时颜色条上的数字重叠
- linux - cmp 任何值都等于 0
- python - 如何扩展双变量 seaborn kdeplot 的评估限制?
- docker - 从同一网络上的远程计算机连接到 Windows docker 桌面
- python - 使用 sort_index() 时的关键函数
- python - Python:如何将一系列小时转换为一年中的月、日、小时
- python - 解包稀疏矩阵性能调优
- python - Python Selenium 如何单击此按钮
- javascript - 当返回 Promise 时,为什么我需要显式返回?