2016-12-03 5 views
0

私は投票サイトを作っています。また、人々が2回投票することができないようにするために、投票のIDをデータベースに保存しています。しかし、これは私がデータベースからデータを取り出すために、クライアントからサーバにIPを送る必要があります。私はボタンでこれをすべてやっています:あなたが投票をクリックするとチェックするので、投票してください。クライアントがすでに投票しているか確認してください。

私はExpressとsocketioとNode.jsを使用しています。私は本当にIPを取得する方法を理解することはできません。

ユーザーは投票に登録する必要はありません。

上記の方法は最良の方法ではないかもしれませんが、より良い方法があると思います。だから私の質問は:

誰かがすでに投票に投票しているかどうかを確認する最良の方法は何でしょうか。あなたは急行アプリケーション内で、IPアドレスを検索したい場合は

+0

人が投票しているかどうかにかかわらず、信頼できる方法でチェックすることさえありません。 IPは人間に接続されておらず、むしろマシンに接続されています。 – Teemu

+0

インターネット接続によっては、たとえば、毎日新しいIPを取得する人がいます。したがって、私はクライアントの[localStorage](https://developer.mozilla.org/en/docs/Web/API/Window/localStorage)と選択した投票IDに独自の(投票)IDを格納します。ユーザーが最初の投票データを要求すると、すでに投票したかどうかを比較する2つの要素があります。 – skobaljic

答えて

0

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 
}); 

そして、あなたの質問に答えるために、個人的に私は大学のIDのように、一意の識別のいくつかの並べ替えを入力することをユーザに要求したいですナンバー、税番号(たとえばブラジルではどのように識別されているか)を保証するものは、あなたの関心領域内の一人の個人にしかユニークではありません。

このようなことができない場合は、ユーザーを登録する必要があります。

関連する問題