微信小程序----用户拒绝授权,重新调起授权
- 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 ...
随机推荐
- Logistic回归计算过程的推导
https://blog.csdn.net/ligang_csdn/article/details/53838743 https://blog.csdn.net/weixin_30014549/art ...
- 网易blog服务器关闭了,我曾经的大部分博文迁移至此,留作纪念。欢迎大家去我的简书blog~
ARM时代过去了,另一个AI时代正在上演~ 这一次我看上了计算机视觉,一个依旧在发展,论文数量不断上升的技术领域,还有很多待研究的技术突破点,我可以玩的时间长一点了. 活到老,学到了.学以致用乐趣无穷 ...
- Flutter数据库Sqflite之增删改查
Flutter数据库Sqflite之增删改查 简介 sqflite是Flutter的SQLite插件,支持iOS和Android,目前官方版本是sqflite1.1.3 sqflite插件地址:h ...
- CentOS 7编译OpenWRT
安装必要的依赖 yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel ...
- "做中学"之“极客时间”课程学习指导
目录 "做中学"之"极客时间"课程学习指导 所有课程都可以选的课程 Java程序设计 移动平台开发 网络攻防实践 信息安全系统设计基础 信息安全专业导论 极客时 ...
- style1
<!doctype html> 我的简历 基本信息 姓名 张三 性别 男 应聘职位 WEb前端工程师 联系方式 手机 12312341234 Email joinefe@baidu.com ...
- vue+vuex 回退定位到初始位置
先放出两张图(没错,你还在9012,做为一名资深设计师我唯一的技能点就是留白),简单说明下问题未做回退定位(从落地页回退,每次都回到A位置)想死啊有木有,每次都需要手动重新定位来选择,你大哥看到你做个 ...
- loadrunner常用函数集锦
一.三个复制函数的区别: strcpy 原型:extern char *strcpy(char *dest,char *src);用法:#i nclude功能:把src所指由NULL结束的字符串复制到 ...
- php动态获取网页图片路径~
<?phpheader("Content-type:text/html;charset=utf-8"); 请求的url $url = 'http://dsc.taobaocd ...
- [爬虫进阶]使用Jsoup取代你的一切网络请求方法(java,post,get,代理IP)
[爬虫进阶]使用Jsoup取代你的一切网络请求方法(java,post,get,代理IP) 原文链接:https://www.cnblogs.com/blog5277/p/9334560.html 原 ...