2012-06-15 21 views
5

Soy nuevo en Django pero estoy trabajando en el tutorial en el sitio web de Django para crear una encuesta.Invitados de Django votan solo una vez

¿Cuál es la mejor manera de hacerlo para que los invitados (sin registro/inicio de sesión) solo puedan votar una vez en una encuesta?

  • IP (No quiero IP porque las personas que comparten una red solo pueden votar una vez).
  • Cookie (El usuario puede eliminar la cookie pero parece ser el mejor método).
  • Sesión (Si el usuario cierra el navegador, la sesión cambiará).

Supongo que Cookie sería el mejor enfoque, pero ¿hay una mejor manera para Django?

Respuesta

7

Hay una solución independiente de la infraestructura de servidor que utilice:

Evercookie le da galletas prácticamente irrevocable. Úselos, si quiere ese nivel de persistencia de datos.

Evercookie es una solución para el almacenamiento de datos en las galletas y varios otros lugares (como la memoria utilizada por Flash " las cookies", de HTML5 localStorage etc.). Si se borra cualquiera de estos lugares, la próxima visita en el sitio lo volverá a llenar de datos. Lo único que necesita son los datos almacenados en cualquiera de los 13 lugares utilizados por Evercookie y la próxima visita lo rellena nuevamente a los otros 12 lugares.

Es bastante difícil deshacerse de tales cookies, así que tenga en cuenta si sus usuarios aceptan rastrearse de esa manera. Algunos de ellos ciertamente no estarían de acuerdo.

1

Si es tan importante que las personas solo puedan votar una vez, considere crear un sistema de registro/inicio de sesión básico de todos modos. Un invitado siempre puede usar varias computadoras para desviar la votación, mientras que el registro de la cuenta al menos le permite rastrear qué direcciones de correo electrónico se utilizan para votar. También lleva un poco más de esfuerzo desviar la votación de esa manera. Si es importante, pero no de importancia para salvar vidas, entonces utilizaría el enfoque de cookies para invitados anónimos.

Cuestiones relacionadas