微信小程序如何获取openid及用户信息


Posted in Javascript onJanuary 26, 2018

微信小程序获取openid及用户信息的方法

1. 获取openid

1.1 获取code

调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。

wx.login({
 //获取code
 success: function(res) {
   code = res.code //返回code
 }
})

1.2 获取openid

拿到上一步获取的code,结合小程序 appid 和 secret 请求接口https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 换取openid,与 openid 一同被返回的,还包括 session_key,其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。

wx.request({
 url: 'https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code='+ code +'&grant_type=authorization_code',
 data: {},
 header: {
   'content-type': 'application/json'
 },
 success: function(res) {
  openid = res.data.openid //返回openid
 }
})

2. 获取用户信息

2.1 在app.js中创建该全局方法

//app.js
getUserInfo:function(cb){
 var that = this
 if(this.globalData.personInfo){
  typeof cb == "function" && cb(this.globalData.personInfo)
 }else{
  //调用登录接口
  wx.login({
   success: function () {
    wx.getUserInfo({
     success: function (res) {
      that.globalData.personInfo = res.userInfo
      typeof cb == "function" && cb(that.globalData.personInfo)
     }
    })
   }
  })
 }
}

2.2 实例化全局方法获取用户信息

var that = this;
//调用应用实例的方法获取全局数据
app.getUserInfo(function (personInfo) {
 //更新数据
 that.setData({
  personInfo: personInfo
 })
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js如何设置在iframe框架中指定div不显示
Dec 04 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
JavaScript入门教程之引用类型
May 04 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 Javascript
理解JavaScript原型链
Oct 25 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
微信小程序之网络请求简单封装实例详解
Jun 28 Javascript
vue 将页面公用的头部组件化的方法
Dec 18 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
Sep 30 Javascript
elementUI select组件value值注意事项详解
May 29 Javascript
JAVA面试题 static关键字详解
Jul 16 Javascript
微信小程序如何获取用户手机号
Jan 26 #Javascript
Vue header组件开发详解
Jan 26 #Javascript
Vue shopCart 组件开发详解
Jan 26 #Javascript
jquery写出PC端轮播图实例
Jan 26 #jQuery
深入理解vue中slot与slot-scope的具体使用
Jan 26 #Javascript
从零开始最小实现react服务器渲染详解
Jan 26 #Javascript
微信小程序模版渲染详解
Jan 26 #Javascript
You might like
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
国内咖啡文化
2021/03/03 咖啡文化
php flush类输出缓冲剖析
2008/10/19 PHP
preg_match_all使用心得分享
2014/01/31 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
《王二小》教学反思
2014/02/27 职场文书
师范类求职信
2014/06/21 职场文书
写给医院的感谢信
2015/01/22 职场文书
刘胡兰观后感
2015/06/16 职场文书