微信小程序如何获取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 相关文章推荐
将函数的实际参数转换成数组的方法
Jan 25 Javascript
jquery命令汇总,方便使用jquery的朋友
Jun 26 Javascript
JS删除数组元素的函数介绍
Mar 27 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
使用jquery写个更改表格行顺序的小功能
Apr 29 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
VUE元素的隐藏和显示(v-show指令)
Jun 23 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
分析JavaScript数组操作难点
Dec 18 Javascript
js闭包学习心得总结
Apr 17 Javascript
koa router 多文件引入的方法示例
May 22 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
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
javascript 节点排序 2
2011/01/31 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
window下eclipse安装python插件教程
2017/04/24 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
使用python实现简单五子棋游戏
2019/06/18 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python文件读写代码实例
2019/10/21 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
传播学专业毕业生自荐信
2013/11/04 职场文书
招商经理岗位职责
2013/11/16 职场文书
公司企业表扬信
2014/01/11 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
交通事故调解协议书
2015/05/20 职场文书