wx.getSetting的res.authSetting['scope.userInfo']判断?
发布于 4 年前 作者 zhengmin 3517 次浏览 来自 官方Issues

关于小程序登录,现有2个业务场景,1.小程序初次打开,授权登录,得到用户信息手机号码token等,其他业务验证token。2.小程序已经打开过,再次打开小程序触发下面逻辑

        wx.getSetting({
            successfunction (res{
                if (res.authSetting['scope.userInfo']) {
                    isHidefalse;
                    isShow: false;
                    //用户已经授权过,获取用户信息
                    wx.getUserInfo({
                        successfunction (res{
                            //赋值局部变量
                            console.log(res)
                            // that.data.userInfo = res.userInfo  
                            //
                            console.log(res.userInfo)
                            //从数据库获取用户信息验证
                            that.queryUsreInfo(res.userInfo);
                            // getApp().globalData.userInfo=res.userInfo
                            //验证成功后,跳转进入小程序首页
                            wx.switchTab({
                                url'/pages/home/home'
                            })
                        }
                    });
                }
                else {
                    that.setData({
                        isShowtrue
                    });
                }
            }
              })

       现增加第三种情况,Token过期,在其他业务的page下,跳转到登录pages.因为已经授权的原因,不显示授权拉取按钮直接得到授权执行登录方法,并且跳回之前的业务pages下。这个用户使用体验不是很好。如何清空之前的授权,重新获取手机号码和用户信息等?

3 回复

1.无发清空

2.在app.js写一个更新用户数据的函数

在业务page页面判断

1.已登录,token失效直接调用app的函数更新登录状态并更新数据 直接调用提示登录即可

2.如果未登录跳转登录页面登录授权就好了

这个授权无法清空

因为以及授权过,所以

 if (res.authSetting['scope.userInfo'])

就只能为真,则直接跳过了用户点击按钮去授权的这个过程,有什么办法解决,或者清除掉这个授权?

回到顶部