我如何认证用户没有登录表单在香草node.js?



我正在创建一个博客网站,我可以发布,删除和编辑博客。我希望用户能够为帖子投票,但我不知道如何验证他们。我不想使用登录系统,因为我认为这对我目前的项目来说是多余的。

这是我目前对这个问题的解决方案,但它并不真正起作用:

  • 我想获得用户的本地IPv4地址,所以我可以存储它,我可以保存的东西到它。
const http = require("http");
const port = process.env.PORT || 3000;
const server = http.createServer((req, res) => {
if (req.url == "/") {
res.writeHead(200);
res.end();
console.log(req.headers["x-forwarded-for"]);
};
});
server.listen(port, () => console.log(`Listening on port ${port}`));

这只是一个演示,以显示我的问题是什么req.headers["x-forward -for"]方法。它返回用户的公共IP地址,因此,例如,如果一个网络中的某个人给一个博客点赞,那么同一网络上的另一个用户会看到他给那个特定的博客点赞,但实际上这个用户从来没有喜欢过这个博客。

是否有办法获得用户的IPv4地址?也许有另一种解决方案可以不使用IP方法对用户进行身份验证?我认为这是可能的,因为我看到一个网站,我可以在没有登录或类似的东西的情况下投票图像,它在我的手机和pc上正常工作。

如果您只想处理没有身份验证的点赞,您可以考虑使用cookie来存储用户id。这将使该浏览器的投票状态在所有网络中保持一致(除非您清除浏览器数据)。

解释:

  1. 如果没有cookie,前端可以创建一个随机字符串作为用户id,并将其存储在cookie中。
  2. 对于每次投票,前端发送用户id和博客数据在cookie中,后端更新投票。
  3. 在检索数据时,前端将用户与存储在cookie中的用户id进行比较,以显示哪些博客是由用户投票的。

缺点:

  1. 如果用户在其他浏览器上打开博客或清除浏览器数据,您将在数据库中出现不一致。

最新更新