<button wx:if="{{canIUse}}"   open-type="getUserInfo"  bindgetuserinfo="bindGetUserInfo"    hidden="{{userinfo}}">授权登录</button>
data: {
userinfo:false,
}
onLoad:function(){
wx.getStorage({
key: 'userinfo',
success: function(res) {
that.setData({
userinfo:true
})
},
fail:function(){
that.setData({
userinfo: false
})
}
})
}
//方法
bindGetUserInfo: function(e) {
var that = this;
console.log(e);
console.log(e.detail.userInfo)
wx.login({
success: res => {
// ------ 获取凭证 ------
 
var code = res.code;
console.log(code);
if (code) {
// console.log('获取用户登录凭证:' + code);
// ------ 发送凭证 ------
app.util.request({
"url": "entry/wxapp/GetUid",
data: {
code: code
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res);
if (res.statusCode == 200) {
// console.log("获取到的openid为:" + res.data)
// that.globalData.openid = res.data
  wx.setStorageSync('openid', res.data),//同步操作
       wx.setStorage({//异步操作
            key: 'userinfo',
           data: true,
        }),
        that.setData({
            userinfo: true
         })
//设置用户信息
wx.getUserInfo({
success: res => {
var u_name = e.detail.userInfo.nickName;
var u_thumb = e.detail.userInfo.avatarUrl;
console.log(u_name);
console.log("aa" + res)
console.log("aa"+res.errMsg)
wx.setStorageSync("avatar", res.userInfo.avatarUrl)
if (res.userInfo.nickName != wx.getStorageSync("nickName")) {
app.util.request({
"url": 'entry/wxapp/TyMember',
data :{
u_name:u_name,
u_thumb:u_thumb
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success: function (res) {
console.log(res);
if (res.statusCode == 200) {
// console.log("获取到的openid为:" + res.data)
// that.globalData.openid = res.data
wx.setStorageSync('u_name', res.data)
wx.getStorageSync('u_thumb', res.data)
} else {
console.log(res.errMsg)
}
},
})
}
}
})
} else {
console.log(res.errMsg)
 
}
}
})
}
 
},
fail: function (err) {
console.info(err.errMsg);
wx: showModal({
title: '警告',
cancelText: '不授权',
confirmText: '授权',
confirmColor: '#37c31a',
content: '若不授权微信登录,则无法使用XXXXXX;点击重新获取授权,则可重新使用;' +
'若点击不授权,将无法使用便捷服务。',
success: function (res) {
if (res.confirm) {
console.log('用户点击确认');
wx.openSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
wx.getUserInfo({
success: res => {
console.log('用户同意授权' + res.userInfo.nickName)
app.util.request({
'url': 'entry/wxapp/TyMember',
data: {
u_name: u_name,
u_thumb: u_thumb
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success: function (res) {
console.log(res);
if (res.statusCode == 200) {
// console.log("获取到的openid为:" + res.data)
// that.globalData.openid = res.data
wx.setStorageSync('openid', res.data)
} else {
console.log(res.errMsg)
}
},
})
}
})
} else {
console.info('再次不允许');
}
}
})
} else if (res.cancel) {
console.log('弹出框用户点击取消')
}
}
})
}
})
 
},

小程序授权demo的更多相关文章

  1. 微信小程序开源Demo精选

    来自:http://www.jianshu.com/p/0ecf5aba79e1 文/weapphome(简书作者)原文链接:http://www.jianshu.com/p/0ecf5aba79e1 ...

  2. 小程序获取openid 小程序授权

    小程序获取openid 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. wx.login(Object object) 调用接口获取登录凭证(cod ...

  3. 微信小程序 - 授权页面

    小程序授权方式更改以后,我们只有两种选择. 1.在主页使用遮罩层,类似这样的(会造成一点卡顿) 2.新增登陆授权页(经过反复的思考,我还是觉得用这个好) 这个也不错: https://blog.csd ...

  4. 微信 公众号 小程序 授权 unionid 用户信息 实验总结

    -*-*-*-*-*-*-*-*-*--*-*-*-1.小程序通过code获取用户openid的接口,如果用户曾经授权并未过期,或者用户关注过同主体的公众号,会带回unionID,但没有用户头像等信息 ...

  5. 【福利】微信小程序精选Demo合集

    小编最近在开发小程序,也读到了不少优秀的小程序源码,项目中有些需求可以直接从源码里粘贴复制过来,虽然这样做不利于自己独立编写代码,但比较是给公司做项目啊,秉着效率第一的原则,简直没有什么比ctrl+c ...

  6. 完整微信小程序授权登录页面教程

    完整微信小程序授权登录页面教程 1.前言 微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方 ...

  7. 02——微信小程序官方demo讲解——app部分

    第一节讲了目录结构,这节主要讲解下目录中app.js部分. 它由三部分组成app.js.app.json与app.wxss 1.JS部分 1.1概述 //app.js App({ onLaunch: ...

  8. 微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。

    在这里给大家分享下我的心得,1.写代码前一定要对整个流程有个了解.我就是因为在先不了解整个过程中去ctrl+c+v他人的博客代码,花费很多无用的时间去处理还不知道能不能跑的起来的代码. 2.本人比较喜 ...

  9. 微信小程序授权登录以及用户信息相关接口调整导致授权框不弹出

    前言:4月8号升级了小程序业务后提交了版本并上线.突然一个同事说体验版的点击"登录"按钮无效.当时觉得应该不会呀,这几天一直用手机调试,每天也在不停的登录授权,弹框一直有的呀.然后 ...

随机推荐

  1. mysql中的中文乱码解决方案, 全部是 这篇文章的内容: https://www.52jbj.com/jbdq/18755.html

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B. 如果你也遇到了这个问题,咱 ...

  2. 再谈 apache设置virtualhost + apache的一些相关设值

    首先 要弄懂究竟什么是, vitrual host: 虚拟主机, 他有什么用处? 就是说: 一台计算机(server)中, 通常只是放一个网站/站点 但是 如果机器紧张, 服务器性能比较好,或访问的站 ...

  3. oracle函数之 minus

    “minus”直接翻译为中文是“减”的意思,在Oracle中也是用来做减法操作的 Oracle的minus是按列进行比较的,所以A能够minus B的前提条件是结果集A和结果集B需要有相同的列数,且相 ...

  4. LightOJ 1258 Making Huge Palindromes(KMP)

    题意 给定一个字符串 \(S\) ,一次操作可以在这个字符串的右边增加任意一个字符.求操作之后的最短字符串,满足操作结束后的字符串是回文. \(1 \leq |S| \leq 10^6\) 思路 \( ...

  5. Hbase与Oracle比较(列式数据库与行式数据库)

    Hbase与Oracle比较(列式数据库与行式数据库) 1 主要区别 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间.   Hbase本质上只 ...

  6. oracle批量删除某用户下的表

    昨天干了一天的体力活,到快下班时被要求删除一批测试库上错误的表,主要是这些表的字段和生产上字段顺序对不上,然后让我写个脚本,让dba执行一下,主要是删表这种东西我们都没权限. 然后,我就被难到了,我记 ...

  7. Gym 100247I Meteor Flow(优先队列)

    https://vjudge.net/problem/Gym-100247I 题意:有一艘飞船,现在有n颗流星坠落会攻击到飞船,每颗流星会在t时刻降落,对飞船造成d的伤害,飞船会有一个保护盾,初始值为 ...

  8. mutect/mutsig/gistic官网汇总

    http://software.broadinstitute.org/software/cprg/

  9. codeforces gym 100971 K Palindromization 思路

    题目链接:http://codeforces.com/gym/100971/problem/K K. Palindromization time limit per test 2.0 s memory ...

  10. Educational Codeforces Round 23 C. Really Big Numbers 暴力

    C. Really Big Numbers time limit per test 1 second memory limit per test 256 megabytes input standar ...