公司要做一个匿名点赞的功能,用户可以不用登陆就点赞,但是只能点赞一次,用COOKIE和ip 都不是太合理,不知道谁有更好的方案,很好奇百度知道的点赞功能是怎么记住用户的
公司要做一个匿名点赞的功能,用户可以不用登陆就点赞,但是只能点赞一次,用COOKIE和ip 都不是太合理,不知道谁有更好的方案,很好奇百度知道的点赞功能是怎么记住用户的
不登录还要记住用户名?开玩笑么。。记住用户名肯定是登陆了的,不登录点赞并且只能点赞一次那你就只能去记录用户的地址、设备等信息,如果你能获取到的话,否则不登录要能点赞还只能点一次基本是不可能的
问题被踩了4次也是心疼,很多人根本没理解楼主的意思就胡乱评论,
@clcx_1315, 人家说的是“好奇百度知道的点赞功能是怎么记住用户的”,你扯什么用户名,用户等于用户名吗?登录的用户等于用户吗?
这里的重点不是获取用户,是尽量保证用户点赞的唯一性。
比较赞同@和女神嗯嗯_丶和@lejoy的思路,用UA信息+ip的形式尽量保证一个用户点赞一次,但是这样我换个浏览器就能继续点赞了,如果不用登陆的话,只需要尽量保证就好了、前端控制终究达不到100%的效果。
百度知道
未登录:
点击点赞之后,存储到localstorage之中,然后在登陆之后,数据同步到用户
已登录:
直接同步到用户,但是localstorage还是会存一份
百度知道pcweb端 应该是通过cookie中的BAIDUID来控制未登录状态点赞的。
BAIDUID的生成算法,其他朋友也回答的差不多了。就是那几个方法。
一段时间内,首次访问百度知道或者说是百度系的网站,无论登不登陆,cookie中都会写入BAIDUID。如果不清除cookie,它会保持一段时间内不变。这样,在一定时间内,你只能对点赞进行一次操作。但当cookie失效,则又可以重新点赞。所以你可以试一下,不登录点赞后,清除cookie,又可以在百度知道上刚刚点过赞的条目上继续点赞了。
另外,我觉得BAIDUID生成算法中,应该是加了timestamp或者随机数,因为使用同一IP同一机器同一浏览器,每次清cookie后,生成的BAIDUID值是不一样的。
最后,不登录就可以点赞的话,确实这个赞的数据,可参考性很差。不过用户发现能刷赞数的话,也许会增加访问此网站的兴趣,有利有弊,用哪种策略还得看PM。
13 回答12.8k 阅读
7 回答1.9k 阅读
5 回答1.4k 阅读
4 回答1.2k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
md5(IP+操作系统类型+浏览器类型+浏览器版本号) 联合唯一