小程序 · 授权

微信小程序拒绝授权后再次授权

当用户点击授权弹框的拒绝时,再次使用功能需要再次授权,此时调用wx.authorize方法会返回错误信息errMsg: “authorize:fail:auth deny”,指用户已经拒绝授权,不会在弹出授权页面。

错误码:-12006,auth deny

问题原因
如果用户拒绝授权后,短期内调用不会出现弹窗,而是直接进入 fail 回调。如果是开发环境,请点击开发工具左侧 缓存-清除授权数据;如果是手机,请进入小程序后点击右上菜单-关于xx-右上角菜单-设置中进行权限的手动设置,或删除小程序后重新添加。

解决方法
使用 wx.getSetting 获取用户当前的授权状态,调用 wx.openSetting 打开设置界面,引导用户开启授权

  getWXSetting() {
    // 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
    // , 'scope.writePhotosAlbum' 'scope.userInfo', 'scope.userLocation',
    let that = this
    wx.getSetting({
      success(res) {
        console.log('getSetting', res.authSetting)
        if (!res.authSetting['scope.userLocation']) {
          wx.authorize({
            scope: 'scope.userLocation',
            success(res) {
              // 用户已经同意小程序使用功能,后续调用接口不会弹窗询问
              // 获取位置信息
              that.getLocation()
              console.log('1', res)
            },
            fail(res) {
              errMsg: 'authorize:fail auth deny'
              wx.showModal({
                title: '提示',
                content: '检测到您没打开获取信息功能权限,是否去设置打开?',
                success(res) {
                  if (res.confirm) {
                    console.log('用户点击确定')
                    wx.openSetting({
                      success: (res) => {
                        console.log(res)
                      },
                    })
                  } else if (res.cancel) {
                    console.log('用户点击取消')
                    // 拒绝跳转介绍页
                    wx.redirectTo({
                      url: '/pages/home/introduce/introduce',
                    })
                  }
                },
              })
              console.log('2', res)
            },
          })
        } else {
          that.getLocation()
        }
      },
    })
  },

参考:
授权 /wx.authorize

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于springboot小程序授权登录,我可以为您提供一些指导意见。首先,您可以使用Spring Boot的OAuth2框架来实现小程序授权登录。其次,您还可以通过使用微信的SDK来实现小程序授权登录的功能。 ### 回答2: Springboot小程序授权登录是指在使用Springboot框架开发小程序时,实现用户登录授权的功能。 首先,我们需要在小程序端使用微信提供的API,获取用户的OpenID和SessionKey。通过Springboot的HTTP请求工具,发送请求到微信API接口,获取到用户的OpenID和SessionKey。 然后,我们可以根据获取到的OpenID和SessionKey,在后端的控制器中进行用户的登录授权逻辑。可以自定义一个用户实体类存储用户的信息,比如OpenID、SessionKey等。 接下来,我们可以使用Springboot提供的数据库操作工具,比如MyBatis或者Hibernate等,将用户信息存储到数据库中,或者更新用户的登录状态。 在前端页面中,我们可以根据用户的登录状态,判断用户是否已经登录成功。可以使用Springboot提供的Session管理工具,将用户的登录状态存储在Session中,在每次请求时判断用户的登录状态,进行相应的处理。 除了基本的授权登录功能,我们还可以结合Spring Security等安全框架,增加用户权限的管理。可以在数据库中存储用户的角色和权限信息,并在后端进行相应的授权校验,保证用户只能访问其具备权限的功能。 总的来说,Springboot小程序授权登录是通过调用微信API获取用户的OpenID和SessionKey,并结合Springboot框架实现用户登录授权功能的一种实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值