微信小程序如何获取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进行目录上传(相当于批量上传)
Dec 05 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
Dec 28 Javascript
JS小功能(列表页面隔行变色)简单实现
Nov 28 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
javascript中数组的定义及使用实例
Jan 21 Javascript
JS模拟键盘打字效果的方法
Aug 05 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
IScroll5 中文API参数说明和调用方法
May 21 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
Angular开发实践之服务端渲染
Mar 29 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
vue中jsonp插件的使用方法示例
Sep 10 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
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
php生成curl命令行的方法
2015/12/14 PHP
PHP简单日历实现方法
2016/07/20 PHP
js玩一玩WSH吧
2007/02/23 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
原生js封装添加class,删除class的实例
2017/11/06 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
python里使用正则的findall函数的实例详解
2017/10/19 Python
Python进程间通信之共享内存详解
2017/10/30 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
法制演讲稿
2014/09/10 职场文书
悬空寺导游词
2015/02/05 职场文书
入党自荐书范文
2015/03/05 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫