楼主,解决了吗,这个问题也困扰我好久了
wx.checkSession方法问题,为什么检测不了用户登录态?希望官方能做出解答,这个问题很严重,因为已经影响到用户体验了!!! 首先说明下我在小程序中的登录(wx.login)和授权获取用户信息、手机号的大致流程。 1、进入小程序时在app.js中的onShow有一个操作,初始化用户登录(登录具体流程是,先wx.checkSession获取登录态是否有效,如果失效则重新wx.login刷新登录态,并把code拿给后端换取新的session_key,并保存至db中) ★这个初始化登录操作是一个全局统一的方法,具体代码如下★ [图片] [图片] 2、现在遇到的情况是,用户在第一次进入小程序后,我如愿的登录并拿到的用户的session_key,并在后端db储存下来。但是,当这个用户隔了10来天再次进入小程序,并点击授权获取用户基本信息并发给后端解密时,就解不出来了!! 3、所以问题来了,这是在初始化的checkSession时并没有检测到用户登录态已经过期了?而告诉我的是success,所以程序就没有去走login登录重新获取登录态!(说明一下,我在后端做了session_key的最近一次更新时间,然而这个用户的session_key是他第一次进小程序时初始化登录得到的) 4、我现在的处理是,如果后台解密失败会返回一个特定的code用于前端做判断,直接调用wx.login()做一次登录,并提示客户"系统开了个小差,请再次点击重试!" 。。。虽然再次点击授权是可以了,但是给用户的体验并不好! ★附上授权获取用户信息、手机号的代码截图(获取手机号时加了checkSession全局方法去验证登录态都没作用!)★ [图片] [图片]
2022-01-20