我想要一些伪代码或白板建议的允许未经认证的投票在我的网站。关于这个主题,我已经看过相关的线程,但是我认为我的场景是不同的,足以证明自己的线程是正确的。
有我想要支持的3核心场景。
1)经过认证的用户"Joe“登录到我的网站并投票。因为他是经过认证的,所以他只能投一次票。对于他所做的每一次投票,我都将他的UserId存储在DB中。
2)未经认证的用户“萨利”访问我的网站并投票。由于她未经认证,我将把她的选票保存在一个名为“匿名用户从我的网站”的用户帐户下。
3)未经身份验证的用户"Zoltan“使用我构建的小部件从承载我的小部件的其他合作伙伴站点访问我的站点。他也可以从那个网站投票。我将把他的选票保存在一个名为“匿名用户-从-A-合作伙伴网站”的合作伙伴用户帐户下。
这里的曲折之处在于,我需要支持“萨利”和“佐尔坦”就无限数量的事物投票的能力。也许萨莉想在一天之内就500件事投票。也许Zoltan想在合作网站上对200件事进行投票。也许莎莉在一个月内不会重新访问这个网站,然后回来投票讨论更多的问题。
如何使用cookie实现场景2和3?我是不是把所有的项目ID都拼在一起了?我有什么选择?
FWIW:我计划在总结选票时做出严格的区分。我会说得很清楚匿名投票就是-匿名的。人们会理解在观察结果时使用怀疑态度的方法。但我仍然认为允许未经身份验证的用户投票是有价值的,即使他们可以通过使用多个浏览器或在每次投票后删除cookie来玩游戏。如果用户在我的网站上投票至少必须这样做,那么我将感到满意。
最后,我是,对使用EverCookie之类的东西不感兴趣。为了我的需要,这完全是过火了。
发布于 2011-03-14 02:47:51
我个人不会把任何未经认证的条目与一个用户.相反,我会得到一张未经认证的回复表。当一个人第一次投票-你插入到那个表中,并将自动键(ID)存储在他的cookie中。如果他删除了饼干..。谁在乎呢。但这应该能解决你所有的需求。
这样你就不会试图通过解析逗号分隔的‘投票’来“伪造”逻辑.相反,你只是假装他们是一个普通的用户,然后点击你的数据库来拉他们的票。
发布于 2011-03-14 02:47:49
做一些类似的事情。当用户来到您的站点时,给他们一个唯一的ID,并将该ID存储在持久cookie中。如果一个人曾经完全注册,那么您可以将生成的ID与帐户名关联起来。那么,用户如何访问您的站点并不重要,因为浏览器将自动向您提供适当的cookie。
我将避免序列化cookie中的数据,因为随着时间的推移,数据量可能会变得相当大,而且您可能希望跟踪选票服务器端(这样就可以跟踪使用/滥用情况)。
https://stackoverflow.com/questions/5294168
复制相似问题