微信小程序如何获取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 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
VBS通过WMI监视注册表变动的代码
Oct 27 Javascript
js获取php变量的实现代码
Aug 10 Javascript
JavaScript比较两个对象是否相等的方法
Feb 06 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
QRCode.js二维码生成并能长按识别
Oct 16 Javascript
vue 实现LED数字时钟效果(开箱即用)
Dec 08 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动态图像的创建
2006/10/09 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python常用正则表达式符号浅析
2014/08/13 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Python自省及反射原理实例详解
2020/07/06 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
python 图像增强算法实现详解
2021/01/24 Python
康拓普公司Java笔面试
2016/09/23 面试题
如何设置Java的运行环境
2013/04/05 面试题
程序员机试试题汇总
2012/03/07 面试题
中专生自我鉴定范文
2014/02/02 职场文书
2014年中秋寄语
2014/08/11 职场文书
技术员岗位职责范本
2015/04/11 职场文书
文书工作总结(范文)
2019/07/11 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
Python进程池与进程锁之语法学习
2022/04/11 Python
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python