【问题讨论】小程序登录:自定义登录状态是否有必要维护?
发布于 6 年前 作者 dzhu 9933 次浏览 来自 问答

当前对于同一个小程序而言,用户的openid是唯一的。

所以假设: 自己的开发服务器维护openid与session_key的关系, 然后服务器与小程序通信直接用openid作为传参,有什么不妥吗?

因为小程序微信登录的失效的失效与否,是通过wx.checksession来判断的。

为什么微信将 openid定义为敏感数据,

PS: 感觉使用openid作为参数判断就相当于 站点对于用户的登录判断是依赖 一个不变的key来校验一个,所以有些不够安全。

【最佳实践】还是建议维护自定义的登录状态,不然会存在一定的风险。

泄露场景】大家可以补充下吗?

  1. 本地电脑代理抓包

2 回复
  1. 登录态在你自己有用户体系的情况下,当然是需要自己来维护的,不管openid到底是不是敏感数据。


  2. 不管是自己生成token方式也好,jwt方式也好。需要注意的就是token的有效性。譬如,用户修改了密码token是否需要重新生成?再或者,用户绑定了手机,换了绑定手机token是否需要重新生成?


  1. checksession只是为了用户在微信自身体系下的登陆状态的一种维持的保证,因为有些敏感api(没记错的话获取手机号?)的使用是需要保证用户在微信体系下的login态存在的。如果你的小程序没有用的类似的敏感api,checksession对你是一点作用都没有。甚至连wx.login也只可能需要在用户第一次使用小程序的时候调用,把此用户转换到你自己的用户体系就可以了。

openid是不会变的,一旦泄露,我就能伪装成你。

回到顶部