我该如何处理匿名用户输入?

时间:2011-08-13 14:14:39

标签: python django facebook user-input anonymous

我希望我的网络应用程序的用户无需在投票前注册用户帐户。我已经看过网站,我可以自由地向上或向下投票,无需注册。这是怎么处理的?如何防止同一个人投票无限次?

我正在使用Python和Django。我正在考虑实施facebook登录,但我想听听一些专家的意见。我会将最有帮助的答案标记为正确。

2 个答案:

答案 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!')