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) {
    
    },
    })
    },
    })
    }
    }
    })
    },
    })
    // 失败之后再次登入
    }
    })
    }
    },
    })
    }
    })
    }
    }
    })
    }
    })
    

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

  • 相关阅读:
    智慧养老民政监管平台建设方案
    CF600E Lomsat gelral dsu on tree
    dsu on tree详解
    【Spring 从0开始】Spring5 新功能,整合日志框架 Log4j2
    【Spring 从0开始】JdbcTemplate 数据库事务管理
    【Spring 从0开始】JdbcTemplate 数据库事务参数
    【Spring 从0开始】JdbcTemplate 数据库事务管理
    【Spring 从0开始】JdbcTemplate 操作数据库
    【Spring 从0开始】AOP 操作
    【Spring 从0开始】AOP 操作中的相关术语、环境准备
  • 原文地址:https://www.cnblogs.com/liujun1128/p/8805271.html
Copyright © 2011-2022 走看看