手机网页保证用户的唯一性

我现在的项目有个需求,就是做个手机网页,页面有个按钮,用户点击按钮后计数加一,用户只能点击一次,可以分享出去让别人帮点。
最主要的要求就是每个用户只能点一次,怎么能实现这个功能。
也就是说怎么能获取用户的唯一标识信息,好能禁止多次点击
前提:项目拥有一个已经认证的订阅号,做不了网页授权功能。
我找了好久,都说是需要服务号的网页授权功能。

阅读 4.9k
9 个回答

题主这个如果是要在微信浏览器的话,就算不关注也能获得当前进入网页的用户openid的,就是微信的网页授权功能:

以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

分享的话,就调用微信的jssdk,然后分享出去的链接里加上 当前用户的openid,以便后续点击这个链接的用户,知道是谁分享出来的,好写后续业务代码

当然你需要一个数据库什么的,来存储这些openid等数据

你问的这个问题的URL是:

https://segmentfault.com/q/10...

这个数字应该就是用来表示问题的ID吧,你也可以学着来吗

自己搞个数据库表,存储分享过的ID,这个ID也不要写到URL里面,卸载hash中

https://segmentfault.com/q/?u...

然后页面加载的时候,解析URL,没有这个值的,视为分享过了,有值的就请求服务器检查

那就是要有一个唯一的身份ID了?我也不清楚这个问题,mark一下。

你如果只是在微信里做这个功能,可以结合微信的jssdk,获取当前登录的用户id,根据id来判断,但是如果还需要分享到其他的地方话可能就做不到了

让用户输入手机号,获得验证码

用户可以是游客身份还是必须是登录用户?
为用户分配UUID试一下...

这个问题没碰到过,因为我做类似需求的时候就是有认证服务号权限的……所以建议你:

  1. 确认下订阅号是否有静默授权的权限?(这个可能需要登录到后台看下已有权限列表)
  2. 如果上边一条不行的话,考虑是否可以通过开放平台的unionID来曲线救国。因为反正你只要能获取到同一套系统的唯一性ID就行嘛,拿哪个都是拿。
  3. 如果以上两条都不行,那只有去找看看有没有在做获取用户信息/OpenID的第三方服务了……

我觉得楼上说的输入手机号验证码的方式是不错的,手机号毕竟是唯一的。

认证了的号应该是能获得用户的 openid 的。

很多时候其实并不需要那么严谨。

那么,给每个用户生成一个唯一的标识,然后保存了浏览器中,通过 cookie 或localStorage 来保存。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题