zoukankan      html  css  js  c++  java
  • 微信小程序用户拒绝授权,重新调起授权

    获取用户信息
    wx.getUserInfo({
    withCredentials: true,
    success: function (res) {
    var nickName = res.userInfo.nickName;
    var avatarUrl = res.userInfo.avatarUrl;
    var gender = res.userInfo.gender;
    wx.login({
    success: function (res) {
    if (res.code) {
    var rsaData = _this.rsaData({ code: res.code, wx_appid: _this.globalData.appId, nickName: nickName, gender: gender, avatarUrl: avatarUrl })
    wx.request({
    url: _this.globalData.domain + "Index/login",
    data: {
    encrypt_data: rsaData
    },
    method: "POST",
    header: {
    'content-type': 'application/x-www-form-urlencoded'
    },
    success: function (res) {
    const user_id = res.data.data.user_id;
    var openid = res.data.data.openid;
    wx.setStorage({
    key: 'user_id',
    data: user_id,
    })
    wx.setStorage({
    key: 'openid',
    data: openid,
    })
    // 获取会员信息
    var rsaData = _this.rsaData({ user_id: user_id })
    wx.request({
    url: _this.globalData.domain + "user/get_user",
    data: {
    encrypt_data: rsaData,
    token: wx.getStorageSync('token')
    },
    header: {
    'content-type': 'application/x-www-form-urlencoded'
    },
    method: "POST",
    success: function (res) {
    
    },
    })
    },
    })
    }
    }
    })
    },
    fail: function (res) {
    var that = this;
    wx.openSetting({
    success(res) {
    if (!res.authSetting['scope.userInfo'] || !res.authSetting["scope.userLocation"]) {
    wx.authorize({
    scope: 'scope.userInfo',
    success(res) {
    // 失败之后再次登入
    wx.getUserInfo({
    withCredentials: true,
    success: function (res) {
    var nickName = res.userInfo.nickName;
    var avatarUrl = res.userInfo.avatarUrl;
    var gender = res.userInfo.gender;
    wx.login({
    success: function (res) {
    if (res.code) {
    var rsaData = _this.rsaData({ code: res.code, wx_appid: _this.globalData.appId, nickName: nickName, gender: gender, avatarUrl: avatarUrl })
    wx.request({
    url: _this.globalData.domain + "Index/login",
    data: {
    encrypt_data: rsaData
    },
    method: "POST",
    header: {
    'content-type': 'application/x-www-form-urlencoded'
    },
    success: function (res) {
    const user_id = res.data.data.user_id;
    var openid = res.data.data.openid;
    wx.setStorage({
    key: 'user_id',
    data: user_id,
    })
    wx.setStorage({
    key: 'openid',
    data: openid,
    })
    // 获取会员信息
    var rsaData = _this.rsaData({ user_id: user_id })
    wx.request({
    url: _this.globalData.domain + "user/get_user",
    data: {
    encrypt_data: rsaData,
    token: wx.getStorageSync('token')
    },
    header: {
    'content-type': 'application/x-www-form-urlencoded'
    },
    method: "POST",
    success: function (res) {
    
    },
    })
    },
    })
    }
    }
    })
    },
    })
    // 失败之后再次登入
    }, fail: (res) => {
    /*
    * 点击取消之后再次获取user_id 和openid
    */
    wx.showModal({
    title: '警告',
    content: '您点击了拒绝授权,将无法正常使用******的功能体验,请10分钟后再次点击授权,或者删除小程序重新进入',
    success: function (res) {
    if (res.cancel) {
    wx.openSetting({
    success: (res) => {
    // 失败之后再次登入
    wx.getUserInfo({
    withCredentials: true,
    success: function (res) {
    var nickName = res.userInfo.nickName;
    var avatarUrl = res.userInfo.avatarUrl;
    var gender = res.userInfo.gender;
    wx.login({
    success: function (res) {
    if (res.code) {
    var rsaData = _this.rsaData({ code: res.code, wx_appid: _this.globalData.appId, nickName: nickName, gender: gender, avatarUrl: avatarUrl })
    wx.request({
    url: _this.globalData.domain + "Index/login",
    data: {
    encrypt_data: rsaData
    },
    method: "POST",
    header: {
    'content-type': 'application/x-www-form-urlencoded'
    },
    success: function (res) {
    const user_id = res.data.data.user_id;
    var openid = res.data.data.openid;
    wx.setStorage({
    key: 'user_id',
    data: user_id,
    })
    wx.setStorage({
    key: 'openid',
    data: openid,
    })
    // 获取会员信息
    var rsaData = _this.rsaData({ user_id: user_id })
    wx.request({
    url: _this.globalData.domain + "user/get_user",
    data: {
    encrypt_data: rsaData,
    token: wx.getStorageSync('token')
    },
    header: {
    'content-type': 'application/x-www-form-urlencoded'
    },
    method: "POST",
    success: function (res) {
    
    },
    })
    },
    })
    }
    }
    })
    },
    })
    // 失败之后再次登入
    }
    })
    }
    },
    })
    }
    })
    }
    }
    })
    }
    })
    

      方法可能有点繁琐,有不足的地方还请多指教

  • 相关阅读:
    NOIp2018集训test-9-4
    「THUSC 2016」成绩单 & 方块消除 (区间dp)
    NOIp2018集训test-9-2(pm)
    NOIp2018集训test-9-2(am)
    NOIp2018集训test-9-1(pm)
    NOIp2018集训test-9-1(am)
    暑假集训test-8-31(pm)
    暑假集训test-8-31(am)
    暑假集训test-8-30
    day22 笔记
  • 原文地址:https://www.cnblogs.com/liujun1128/p/8805271.html
Copyright © 2011-2022 走看看