微信小程序如何获取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 相关文章推荐
css图片自适应大小
Nov 28 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
Mar 10 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
详解js实时获取并显示当前时间的方法
May 10 Javascript
解决 window.onload 被覆盖的问题方法
Jan 14 Javascript
javascript函数式编程基础
Sep 15 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
PHPlet在Windows下的安装
2006/10/09 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
jQuery性能优化的38个建议
2014/03/04 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
汽车检测与维修专业求职信
2013/10/30 职场文书
行政管理专业推荐信
2013/11/02 职场文书
大学本科生的个人自我评价
2013/12/09 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
运动会解说词200字
2014/02/06 职场文书
团代会宣传工作方案
2014/05/08 职场文书
我爱我校演讲稿
2014/05/21 职场文书
幼儿园课题方案
2014/06/09 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
太空授课观后感
2015/06/17 职场文书
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL