获取用户信息逻辑错误
发布于 7 年前 作者 daixia 3842 次浏览 来自 问答

现在遇到的情况是:

不同主体要获取UnionId

但是一定要用户授权,然后一定得用 button 的 open-type=“getUserInfo” ,成功后通过 bindgetuserinfo=“onGotUserInfo” 获得登录加密数据,但是这个加密数据是需要code去解的,但是wx.login不能写在 onGotUserInfo 里面啊,至此,逻辑是不是错了。

现在的逻辑是:

wx.login -> button  -> code和加密数据 -> 解密

正确的逻辑应该是这样吧?

button -> wx.login -> code和加密数据 -> 解密


当前的解决方案该怎么办?  用户点登录按钮前事先给他生成好 code 吗?

1 回复

session未过期情况下login会刷新登录态,导致sessionKey发生变化。

稳妥的方案是在用户点击授权后,先checkSession,如果未过期,不login,服务器可以用之前的sessionKey解密。如果session过期,需要重新login,使用新的sessionKey解密,这时login code换取的sessionKey和加密userInfo的是同一个

回到顶部