收藏
回答

对于云托管请求自带用户 openid 的最佳实践是什么?

众所周知使用微信云托管一个天然优势是,小程序发起的请求在服务中可以直接从请求头中获取用户 openid。这样一来省去了客户端做 login,服务端换取 openid 的繁琐步骤。相当于云托管自动帮我们做了登录校验,如果拿到用户的 openid 说明用户登录成功了并且也拿到了用户的唯一标识。

但有一个小问题就是,在数据库表设计中用户表有自己的 id,是不是应该使用 openid 完全替代 id 的业务作用进而(几乎)不再需要使用 id?这样做当然是最简单省事的方案,但如果小程序后续开发 web 端或 App 端,openid 作为用户标识必然会传回客户端,这样 openid 作为某种意义上的长期口令就很容易泄漏了,攻击者就可以利用 openid 伪装成小程序发出的请求破坏用户数据。

我的这种担忧是否存在?面对这种未来有扩展非微信平台端可能的应用有什么最佳实践?我想了下,最直接的方式可能是在拿到 openid 后查询用户 id,只把 openid 当作令牌而不作为用户标识,这样就大大降低了 openid 泄漏的风险。不知道大家有没有遇到类似的问题,有什么想法,是怎么解决的?

回答关注问题邀请回答
收藏

2 个回答

  • sun
    sun
    发表于小程序端
    4小时前

    如果你要开发web应用或者小程序,那就用不了openid作为用户的唯一id,必须在自己的系统中生成一个id来实现。因为对于同一个微信账号,小程序和app应用获取的openid是不同的。

    4小时前
    有用
    回复 1
    • 李浩然
      李浩然
      3小时前
      在 web 端应该都没有 openid,所以扩展到其他端肯定需要类似手机号等手段来关联绑定账号
      3小时前
      回复
  • 智能回答 智能回答 本次回答由AI生成
    4小时前
    有用
登录 后发表内容
问题标签