微信小程序如何获取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 相关文章推荐
输入自动提示搜索提示功能的使用说明:sugggestion.txt
Sep 02 Javascript
jquery简单实现鼠标经过导航条改变背景图
Dec 17 Javascript
jQuery针对各类元素操作基础教程
Aug 29 Javascript
JavaScript三元运算符的多种使用技巧
Apr 16 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
Mar 21 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
Jun 03 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
Mar 06 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
Jun 11 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
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
学习jQuey中的return false
2015/12/18 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
js字符串倒序的实例代码
2018/11/30 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
python简单获取数组元素个数的方法
2015/07/13 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python中dict()的高级用法实现
2019/11/13 Python
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
保安拾金不昧表扬信
2014/01/15 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
中职生求职信
2014/07/01 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
初婚初育证明范本
2014/11/24 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
情况说明书格式及范文
2019/06/24 职场文书
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技