小程序授权登录

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40928350/article/details/83095424

1,由于公司需要,现在需要做一个小程序,在授权登录的地方遇到很操蛋的问题!
无论当我点击授权登录按钮时,授权弹框就是不弹出来,让我纠结半天
注:4月30日之前已经正式发布的小程序,还是可以按照用户登录时,弹出需要授权的弹窗,用户点击授权后才能使用。
但4月30日后,只要是准备更新升级的小程序,都需要改接口。改成用户无需直接授权也能使用该小程序,但是用户主动触发某些企业引导的设置时,才会需授权使用。(所以要主动引导用户授权)

问题解决:之所以授权弹框没有弹出来,是代码有问题,并且微信官方也有调整

下面直接上代码(由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发,并且button里必须要加open-type="getUserInfo"才能弹出授权窗口)
wxml:

<view wx:if="{{canIUse}}">
    <view class='header'>
        <image src='../image/login.png'></image>
    </view>
 
    <view class='content'>
        <view>申请获取以下权限</view>
        <text>获得你的公开信息(昵称,头像等)</text>
    </view>
 
    <button class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
        授权登录<!--由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发,并且button里必须要加open-type="getUserInfo"才能弹出授权窗口-->   </button>
</view>
 
<view wx:else>请升级微信版本</view>

js:

const app = getApp();
Page({
  data: {
    //判断小程序的API,回调,参数,组件等是否在当前版本可用。
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },

  onLoad: function() {
    var that = this;
    // 查看是否授权
    wx.getSetting({
      success: function(res) {
        if (res.authSetting['scope.userInfo']) {
          wx.getUserInfo({
            success: function(res) {
              //用户已经授权过
              wx.redirectTo({
                url: '../index/index'
              })
            }
          });
        }
      }
    })
  },
  bindGetUserInfo: function(e) {
    if (e.detail.userInfo) {
      //用户按了允许授权按钮后需要处理的逻辑方法体
      //var that = this;
    

    } else {
      //用户按了拒绝按钮
      wx.showModal({
        title: '警告',
        content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
        showCancel: false,
        confirmText: '返回授权',
        success: function(res) {
          if (res.confirm) {
            console.log('用户点击了“返回授权”')
          }
        }
      })
    }
  },

})

效果如图:哈哈本人菜鸟,多多指教
在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页