如何在不创建用户帐户的情况下允许每个人 (computer/mobile) 在网站上的 1 post 上只投 1 票?

How to allow only 1 vote per person(computer/mobile) on 1 post at website without making user accounts ?

我在学习 Meteor 框架的过程中将 Yik Yak 移动应用程序重新创建为 Web 应用程序。但是该应用程序是完全匿名的,没有用户帐户,但您仍然只能投票 post 一次。如何进行这项工作?

您想要的可能需要的不仅仅是 JavaScript 和一些后端代码(使用您选择的语言)。

如果是网站,您可以尝试通过 his/her 计算机的 IP/MAC 地址来识别 用户。但问题是它不可靠(例如:用户可能隐藏在假地址后面,或者多个用户可能使用相同的 IP)。您可以 read about some methods on this question (PHP).

如果是移动应用程序,请使用唯一的设备 ID(但同样,这需要的不仅仅是普通的 JavaScript)。

  • 在 Android 上:Settings.Secure#ANDROID_ID (read more on this question)
  • 在 iPhone 上:[UIDevice currentDevice] uniqueIdentifier (read more on this question)
  • 在 Windows Phone 上:DeviceExtendedProperties.GetValue("DeviceUniqueId") (read more on this question)
  • 如果您使用 Cordova/PhoneGap 创建网络应用程序,您可以使用 device.uuid 获取唯一标识符 (read more here)

使用唯一设备 ID (UDID),您可以识别投票的设备,而无需知道谁是该设备的所有者,也无需强迫您的用户在 account/log 中创建