2

小程序登陆和使用授权(亲测无效,不用看了,直接看评论)

不想重新写页面引导用户授权,因为官方说明

scope 为 "scope.userInfo" 时,无法弹出授权窗口,请使用<button open-type="getUserInfo"></button>
理一下思路:
  1. 登陆操作,获取用户openid
  2. 查询是否授权
  3. 已经授权,直接获取用户信息
  4. 未授权,引导用户授权
  5. 授权成功,重新登陆
  6. 授权失败,提示用户

1.登陆

这一步目的是为了获取用户的openid

//1.登陆获取用户openid
wx.login({
    success: function(resdata) {
        if (resdata.code) {
            wx.request({
                url: appConfig.config.getOpenId,
                data: {
                    //somedata
                },
                success: function(res) {
                    //do something
                }
            })

        } else {
            that.openAlert();
        }
    },
    fail: function(res) {
        that.openAlert();
    }
});

2.查看是否授权

//2. 查看是否授权
 wx.getSetting({
            success: function(res) {
                if (res.authSetting['scope.userInfo']) {
                   //授权了
                } else {
                    //未授权
                }
            }
        })

3.已经授权,获取用户信息

//3. 已经授权,获取用户信息
wx.getUserInfo({
    success: function(res) {
        that.globalData.userInfo = res.userInfo
        console.log(res.userInfo)
    }
})

4.未授权,引导用户授权

 //4.未授权,引导用户授权
wx.showModal({
    title: '用户未授权',
    content: '如需正常使用小程序功能,请进行用户授权。',
    showCancel: true,
    success: function(res) {
        if (res.confirm) {
            console.log("用户确认授权")
            
        } else {
            console.log("用户取消授权")
        }
    }
})

5.授权成功

//5.授权成功
if (wx.openSetting) {
    wx.openSetting({
        success: function(res) {
            //重新登陆
        }
    })
}

6.因外部原因授权失败

//6.因外部原因授权失败
else {
    wx.showModal({
        title: '授权提示',
        content: '小程序需要您的微信授权才能使用哦~ 错过授权页面的处理方法:删除小程序->重新搜索进入->点击授权按钮'
    })
}

miomiomio
147 声望5 粉丝

人生昧履,砥砺而行