2016-12-03 21 views
0

Ich mache eine Umfrage-Website. Und um sicherzustellen, dass die Leute nicht zweimal wählen können, speichere ich ihre IP mit der ID für die Umfrage in einer Datenbank. Aber das erfordert, dass ich die IP vom Client an den Server sende, um die Daten aus der Datenbank abzurufen. Ich mache das alles auf der Schaltfläche: Abstimmen, damit es überprüft, wenn Sie auf Abstimmen klicken.Überprüfen, ob der Kunde bereits gewählt hat

Jetzt verwende ich Express und socketio und Node.js. Ich kann nicht wirklich herausfinden, wie man die IP aufruft.

Der Benutzer muss sich nicht registrieren, um abzustimmen oder eine Umfrage zu erstellen.

Die obige Methode ist vielleicht nicht die beste und ich denke, es könnte eine bessere sein. Also meine Frage ist:

Was wäre der beste Weg, um zu überprüfen, ob jemand bereits über eine Umfrage abgestimmt hat.

+0

Es gibt nicht einmal annähernd zuverlässige Möglichkeit zu überprüfen, ob eine Person gewählt hat oder nicht. IPs sind nicht mit Menschen verbunden, sondern mit Maschinen verbunden. – Teemu

+0

Abhängig von der Internetverbindung erhalten manche Leute zum Beispiel jeden Tag neue IP. Also, ich würde auch die eindeutige (Umfrage) ID in Client [localStorage] (https://developer.mozilla.org/en/docs/Web/API/Window/localStorage) und die gewählte Abstimmungs-ID speichern. Sobald der Benutzer die ersten Umfragedaten anfordert, haben Sie zwei Elemente zum Vergleichen, wenn er bereits abgestimmt hat. – skobaljic

Antwort

0

Wenn Sie die IP-Adresse, der innerhalb Ihrer ausdrücklichen Anwendung finden wollen:

app.get('/ip', function (req, res) { 
    var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; 

    //do whatever you want with it 
}); 

Und Ihre Frage zu beantworten, ich persönlich würde den Benutzer auffordern, eine Art eindeutiger Identifikation, wie eine Universität-ID eingeben Nummer, Steuernummer (das ist, wie wir hier in Brasilien zum Beispiel identifiziert werden), alles, was Sie garantieren können, ist einzigartig für nur eine Person in Ihrem Interessengebiet.

Wenn Sie so etwas nicht bekommen, müssen Sie Ihre Benutzer registrieren.

Verwandte Themen