获取用户信息
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) { },
})
},
})
}
}
})
},
})
// 失败之后再次登入
}
})
}
},
})
}
})
}
}
})
}
})

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

微信小程序----用户拒绝授权,重新调起授权的更多相关文章

  1. 微信小程序-用户拒绝授权使用 wx.openSetting({}) 重新调起授权用户信息

    场景模拟:用户进入微信小程序-程序调出授权 选择拒绝之后,需要用到用户授权才能正常使用的页面,就无法正常使用了. 解决方法:在用户选择拒绝之后,弹窗提示用户 拒绝授权之后无法使用,让用户重新授权(微信 ...

  2. 微信小程序-获取当前城市位置及再次授权地理位置

    微信小程序-获取当前城市位置 1. 获取当前地理位置,可通过wx.getLocation接口,返回经纬度.速度等信息; 注意---它的默认工作机制: 首次进入页面,调用该api,返回用户授权结果,并保 ...

  3. 微信小程序用户数据解密

    概述 通过微信web开发者工具创建登录,获取用户信息,发送至后台,进行用户数据解密 详细 代码下载:http://www.demodashi.com/demo/10705.html 一.准备工作 1. ...

  4. 微信小程序用户信息解密失败导致的内存泄漏问题。

    微信小程序获取用户解密的Session_key 然后对 encryptedData进行解密 偶尔报错 时间长了之后会报内存溢出: java.lang.OutOfMemoryError: GC over ...

  5. 关于微信小程序在ios中无法调起摄像头问题

    这几天关于微信小程序开发关于wx.chooseVideo组件问题,因为自己一直是安卓手机上测试,可以调取摄像头,但是应用在ios上无法打开摄像头,困扰了好多天,经过反复查看官方文档,今天总算修复了这个 ...

  6. 微信小程序 用户登录 服务器端(TP5.1)实现

    先来看官方提供的流程图: 客户端: 小程序客户端通过 wx.login() 获取登录code , 然后将code当做参数传递到服务器. getToken(){ var that = this; wx. ...

  7. 微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?

    如果你发现自己的小程序页面没有返回按钮,请检查是不是用的wx.redirectTo(OBJECT)进行的跳转,如果是那就把它改成wx.navigateTo(OBJECT)就可以了. wx.naviga ...

  8. 微信小程序 --- 用户登录

    整体逻辑:点击用户中心,如果如果整个页面没有

  9. 微信小程序~用户转发 onShareAppMessage

    只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,在用户点击转发按钮的时候会调用,此事件需要return一个Object,包含title和path两个字段,用于自定义转发内容 代码使用onSh ...

随机推荐

  1. LapSRN

    Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution 解决问题: 1.bicubic预处理上下采样,计算复杂度高 ...

  2. QT4.8应用控制程序设计

    2012-02-20 22:06:59 从uboot到kernel最新版最后到QT最新版移植都完成后,从初级阶段要走向中级阶段了.初步一个设想是然2440通过QT界面控制小车.先做一个界面模块控制LE ...

  3. JSP等模板引擎已死,大前端为趋势

    我们先来看一下tomcat版本数据: 我们可以看到,从tomcat8之后JSP就再没有新的支持了,tomcat8大概是2013年发布的,也就是说,从2013年开始jsp技术已经实质上不被官方继续维护了 ...

  4. Linux退出状态码

    命令成功结束 一般性未知错误 不适合的shell命令 命令不可执行 没找到命令 无效的退出参数 +x 与Linux信号x相关的严重错误 通过Ctrl+C终止的命令 正常范围之外的退出状态码

  5. 2018年-2019年第二学期第六周C#学习个人总结

    在这一周,我学习了5.4抽象类和接口.首先,抽象类当中我知道了C#允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰例如:abstract void ...

  6. 创建作业(JOB)

    在SQL Server日常需求处理中,会遇到定时执行或统计数据的需求,这时我们可以通过作业(JOB)来处理,从而通过代理的方式来实现数据的自动处理.一下为SQL Server中创建作业的脚本,供大家参 ...

  7. mfc双缓冲绘图

    1.要求 在界面加载本地图片并显示,每过100ms改变一张图片显示 2.现象 通过定时器控制CImage,Load,Draw,Destroy,会非常的卡顿.因为Load图片时,会是非常大的数据[所有C ...

  8. IDEA 发布Api

    1.修改Main方法 代码: public class AlicsbapiApplication extends SpringBootServletInitializer { @Override pr ...

  9. 王之泰201771010131《面向对象程序设计(java)》第十三周学习总结

    第一部分:理论知识学习部分  第11章 事件处理 11.1 事件处理基础 a)事件源(event source):能够产生事件的对象都可 以成为事件源,如文本框.按钮等.一个事件源是一个 能够注册监听 ...

  10. centos7.5升级openssh7.4到7.9

    漏洞扫描工具扫描出openssh用户枚举漏洞,搜索资料得知无补丁和升级包,解决这个漏洞得安装漏洞修复之后的版本version>7.8. 环境 linux版本: CentOS Linux rele ...