微信小程序如何获取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 作用域使用说明
Aug 13 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
Mar 05 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
理解jQuery stop()方法
Nov 21 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 Javascript
浅谈addEventListener和attachEvent的区别
Jul 14 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
微信小程序签到功能
Oct 31 Javascript
原生JavaScript实现随机点名表
Jan 14 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
微信小程序如何获取用户手机号
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/12/06 PHP
php多任务程序实例解析
2014/07/19 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
浅谈PHP的反射机制
2016/12/15 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
python字符串的常用操作方法小结
2016/05/21 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
python opencv实现图像边缘检测
2019/04/29 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
驾驶员培训方案
2014/05/01 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
主持稿开场白
2015/06/01 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
Web应用开发TypeScript使用详解
2022/05/25 Javascript