微信小程序----用户拒绝授权,重新调起授权
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) {
},
})
},
})
}
}
})
},
})
// 失败之后再次登入
}
})
}
},
})
}
})
}
}
})
}
})
方法可能有点繁琐,有不足的地方还请多指教
微信小程序----用户拒绝授权,重新调起授权的更多相关文章
- 微信小程序-用户拒绝授权使用 wx.openSetting({}) 重新调起授权用户信息
场景模拟:用户进入微信小程序-程序调出授权 选择拒绝之后,需要用到用户授权才能正常使用的页面,就无法正常使用了. 解决方法:在用户选择拒绝之后,弹窗提示用户 拒绝授权之后无法使用,让用户重新授权(微信 ...
- 微信小程序-获取当前城市位置及再次授权地理位置
微信小程序-获取当前城市位置 1. 获取当前地理位置,可通过wx.getLocation接口,返回经纬度.速度等信息; 注意---它的默认工作机制: 首次进入页面,调用该api,返回用户授权结果,并保 ...
- 微信小程序用户数据解密
概述 通过微信web开发者工具创建登录,获取用户信息,发送至后台,进行用户数据解密 详细 代码下载:http://www.demodashi.com/demo/10705.html 一.准备工作 1. ...
- 微信小程序用户信息解密失败导致的内存泄漏问题。
微信小程序获取用户解密的Session_key 然后对 encryptedData进行解密 偶尔报错 时间长了之后会报内存溢出: java.lang.OutOfMemoryError: GC over ...
- 关于微信小程序在ios中无法调起摄像头问题
这几天关于微信小程序开发关于wx.chooseVideo组件问题,因为自己一直是安卓手机上测试,可以调取摄像头,但是应用在ios上无法打开摄像头,困扰了好多天,经过反复查看官方文档,今天总算修复了这个 ...
- 微信小程序 用户登录 服务器端(TP5.1)实现
先来看官方提供的流程图: 客户端: 小程序客户端通过 wx.login() 获取登录code , 然后将code当做参数传递到服务器. getToken(){ var that = this; wx. ...
- 微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?
如果你发现自己的小程序页面没有返回按钮,请检查是不是用的wx.redirectTo(OBJECT)进行的跳转,如果是那就把它改成wx.navigateTo(OBJECT)就可以了. wx.naviga ...
- 微信小程序 --- 用户登录
整体逻辑:点击用户中心,如果如果整个页面没有
- 微信小程序~用户转发 onShareAppMessage
只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,在用户点击转发按钮的时候会调用,此事件需要return一个Object,包含title和path两个字段,用于自定义转发内容 代码使用onSh ...
随机推荐
- hdu 6287 口算训练
题意: 小Q非常喜欢数学,但是他的口算能力非常弱.因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力. 每个 ...
- 语音活性检测器py-webrtcvad安装使用
谷歌为WebRTC项目开发的VAD是目前最优秀.最先进和免费的产品之一.webrtcvad是WebRTC语音活动检测器(VAD)的python接口.兼容python2和python3.功能是将一段音频 ...
- mysql索引类型(按存储结构划分)
关于mysql索引类型,网上有很多相关的介绍,给人的感觉很乱.鄙人在翻阅相关书籍后,特意梳理了一下.哪里有不对的地方,欢迎指正! 1. B-Tree索引 它使用B-Tree数据结构来存储数据,实际上很 ...
- 作业(更新ing)
暴政警告 2019.4.19 1.YBT完成 7 道题目(1)广搜 3 道 (2)最短路 4 道 2.写至少 2 篇博客 (据说集中精力,一个上午/下午就能写完) 1. 一个 又一个 球细胞数目 ...
- vue学习笔记—bootstrap+vue用户管理
vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...
- 51行代码实现简单的PHP区块链
本文原始地址:php区块链demo 今年区块链特别火,我也很火啊.我火什么呢.前几年,公众平台出现,还得花时间去学去看,后来小程序出现,又得花时间精力去学去看.现在比特币.以太坊等去中心化货币带起了区 ...
- allure --version 异常io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpected parameter
执行allure --version时,有时会出现如下异常: io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpecte ...
- html 的 crossorigin 属性
添加这个属性, 并且服务器允许跨域后,会得到精确的报错信息. 添加这个属性,但服务器不允许跨域,就会被同源策略阻止加载资源. 不添加这个属性,只能知道报错,不知道具体信息. https://www.j ...
- 20165306 Exp2 后门原理与实践
20165306 Exp2 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF mete ...
- 2019 To do List
做好测试不是靠编程,而是靠的是严禁的作风,慎密的逻辑思维,适合的测试流程. 内心有些迷茫的时候,迷茫的是作为测试既然要学那么多编程,为什么不直接去干开发呢?学了编程,用不上,到底有什么用呢? 看了这句 ...