微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

防止对 Node/Express + Pusher JS 投票应用程序进行多次投票

如何解决防止对 Node/Express + Pusher JS 投票应用程序进行多次投票

我正在创建一个简单的投票应用程序,客户端可以在其中从 HTML 选择下拉列表中进行选择并选择一个选项,然后通过表单提交它会触发 POST 请求以将选择保存在数据库中。然后在前端更新。

目前没有实施身份验证,但如果需要,我可能会继续这样做。

我主要担心有人投票的次数太荒谬了,以及只能投票一次的公平性。

目前我刚刚在客户端投票时添加了本地存储,因此当应用重新渲染时,选择被禁用,显然这不是一个可靠的解决方案,因为他们可以清除此/使用其他设备。

我之前从未构建过投票应用程序,因此我没有这种情况的经验,我很好奇对于此类问题的最佳解决方案是什么。这不是一个严肃的应用程序,但如果可能的话,我想以比使用本地存储更好的方式来解决这个问题。

POST 请求

router.post('/allTime',async (req,res) => {
    try {
        const guest = await req.body.guest;
        
        if(guest) {
            const guestFormatted = guest.toLowerCase();
            const guestPoll = await new GuestPoll({
                guest: guestFormatted,points: 1
            }).save();

            pusher.trigger("poll","poll-Vote",{
                guest: guestPoll.guest,points: parseInt(guestPoll.points)
            });
        }
        
        return res.json({
            message: 'Vote submitted'
        })
    } catch(err) {
        return res.json({
            err
        });
    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。