我希望我的网络应用程序的用户无需在投票前注册用户帐户。我已经看过网站,我可以自由地向上或向下投票,无需注册。这是怎么处理的?如何防止同一个人投票无限次?
我正在使用Python和Django。我正在考虑实施facebook登录,但我想听听一些专家的意见。我会将最有帮助的答案标记为正确。
答案 0 :(得分:2)
不要依赖facebook登录,因为没有facebook的用户将无法投票。
由于没有真正的方法可以确保未注册的用户不会投票两次(他可以从另一台计算机上连接自己,或其他什么),你必须自己定义你想用来检查他的身份的标准是什么
您有不同的方法来解决您的问题,所有这些方法都依赖于存储有关投票用户的信息。您可以依赖IP地址,或在会话或cookie中存储信息,以了解您的用户是否已经投票。
答案 1 :(得分:1)
我会创建一个会话变量来告诉我他们是否已经投票。没错,用户可以清除他们的cookie并投票两次,但这是一个优势。如果你在没有注册的情况下让他们投票,我猜测民意调查不是太科学。
Django在他们的网站上有一些关于如何使用会话的好例子。
https://docs.djangoproject.com/en/dev/topics/http/sessions/#examples
这个特别应该对你有所帮助。而不是投票他们正在处理评论:
def post_comment(request, new_comment):
if request.session.get('has_commented', False):
return HttpResponse("You've already commented.")
c = comments.Comment(comment=new_comment)
c.save()
request.session['has_commented'] = True
return HttpResponse('Thanks for your comment!')