私のサイトで認証されていない投票を許可するための疑似コードまたはホワイトボードの提案が欲しい. このトピックに関する関連スレッドを調べましたが、私のシナリオは独自のスレッドを保証するのに十分に異なっていると思います.
サポートしたい3 つのコア シナリオがあります。
1) 認証されたユーザー「Joe Blow」が私のサイトにログインし、投票します。彼は認証されているため、一度しか投票できません。彼が投票するたびに、彼の UserId を DB に保存します
2) 認証されていないユーザー「Sally」が私のサイトにアクセスし、投票します。彼女は認証されていないので、「Anonymous-Users-From-My-Site」というユーザー アカウントで彼女の投票を保存します。
3) 認証されていないユーザー「Zoltan」が、私が作成したウィジェットを使用して、私のウィジェットをホストしている他のパートナー サイトから私のサイトにアクセスします。彼はそのサイトから投票することもできます。彼の投票は、"Anonymous-Users-From-A-Partner-Site" というパートナー ユーザー アカウントに保存します。
ここでのひねりは、"Sally" と "Zoltan" が無制限に投票できる機能をサポートする必要があるということです。サリーは 1 日に 500 の項目に投票したいと考えているかもしれません。たぶん、Zoltan はパートナー サイトで 200 の項目に投票したいと考えています。おそらく、サリーは 1 か月間サイトを再訪問せず、その後また戻ってきて別の項目に投票します。
Cookie を使用してシナリオ 2 と 3 を実現するにはどうすればよいですか? 投票のすべてのアイテム ID を一緒にハッシュしますか? 私のオプションは何ですか?
FWIW: 票を集計する際に、厳密に区別する予定です。匿名の投票は匿名であることを明確にします。人々は、結果を見るときにある程度の懐疑論を使用することを理解するでしょう. しかし、認証されていないユーザーが複数のブラウザーを使用したり、投票ごとに Cookie を削除したりしてシステムを操作できるとしても、認証されていないユーザーが投票できるようにすることには価値があると思います。私のサイトで投票するユーザーが少なくともこれを行う必要がある場合、私は満足します.
最後に、EverCookie のようなものを使用することに興味はありません。私のニーズでは、それは完全にやり過ぎです。