小程序开发|小程序制作|小程序开发网

搜索
查看: 2313|回复: 1

微信小程序拒绝授权情况处理

[复制链接]

79

主题

267

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2022-5-31 17:44:12 | 显示全部楼层 |阅读模式
微信小程序在请求授权的时候,如果用户拒绝,那么下次点击后不会有反应,需要等待一定时间后才可以重新发起请求,那么这种情况下我们要做另外处理,也有误点的情况下我们要做好这方面的兼容,以下代码是我个人分享的,高手就飞过了吧~

[JavaScript] 纯文本查看 复制代码  //授权登录  wxLogin: function () {    var that = this    var userkey = wx.getStorageSync('user_key')    if (!userkey) {      //调用登录接口      wx.showLoading({ title: '授权用户信息' })      wx.login({        success: function (res) {          var code = res['code']          wx.getUserInfo({            success: function (info) {              var types = 'login'              var sid = that.globalData.scene              var iv = info.iv              var encryptedData = info.encryptedData              var sign = utilSha1.hex_sha1('jzwl006' + types + sid + iv + code + encryptedData + that.globalData.encryptKey)              if (typeof code != "undefined" && typeof encryptedData != "undefined" && typeof iv != "undefined") {                wx.request({                  url: that.globalData.dataUrl + 'GetMember',                  method: 'POST',                  data: {                    type: types,                    sid: sid,                    code: code,                    iv: iv,                    encryptedData: encryptedData,                    sign: sign                  },                  header: {                    'Content-Type': 'application/x-www-form-urlencoded'                  },                  success: function (res) {                    var code = res.data.code                    if (code == 200) {                      var userkey = res.data.userkey                      if (userkey){                        wx.setStorageSync('user_key', userkey)                        wx.showToast({ title: '获取成功', icon: 'success', duration: 2000 })                      }else{                        wx.showToast({ title: '获取失败', image: '../../images/cross1.png', duration: 2000 })                      }                    }                  }                })              }            },            fail: function () {              wx.showModal({                title: '提示',                content: '请先设置允许我们获得您的公开信息',                confirmText: '去设置',                success: function (res) {                  if (res.confirm) {                    wx.openSetting({                      success: (res) => {                        if (res.authSetting["scope.userInfo"] == true) {                          that.wxLogin()                        }                        res.authSetting = {                          "scope.userInfo": true                        }                      }                    })                  }                }              })            },            complete: function () {              wx.hideLoading()            }          })        },        complete: function () {          wx.hideLoading()        }      })    }  }

这个原理就是 如果允许授权则直接成功,如果拒绝,那么下次再点的话就调用起设置页面,然后如果再次允许则再次授权

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

75

主题

279

帖子

662

积分

版主

Rank: 7Rank: 7Rank: 7

积分
662
发表于 2022-5-31 19:04:56 | 显示全部楼层
挺好,实用代码,下次可以分享点其他的实用片断
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表