微信小程序如何获取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 相关文章推荐
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
javascript表单正则应用
Feb 04 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
详解如何在vue项目中引入elementUI组件
Feb 11 Javascript
iview table高度动态设置方法
Mar 14 Javascript
React Router v4 入坑指南(小结)
Apr 08 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 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 get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
会计师职业生涯规划范文
2014/02/18 职场文书
打架检讨书2000字
2014/02/22 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
文明城市创建标语
2014/06/16 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
教你使用TensorFlow2识别验证码
2021/06/11 Python