微信小程序如何获取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 相关文章推荐
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
javacript获取当前屏幕大小
Jun 04 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 Javascript
Vue写一个简单的倒计时按钮功能
Apr 20 Javascript
详解Webpack + ES6 最新环境搭建与配置
Jun 04 Javascript
基于JavaScript实现瀑布流布局
Aug 15 Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 Javascript
js原生map实现的方法总结
Jan 19 Javascript
vue2.x 对象劫持的原理实现
Apr 19 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
android上传图片到PHP的过程详解
2015/08/03 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
python绘制雪景图
2019/12/16 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
python3跳出一个循环的实例操作
2020/08/18 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
结构和类有什么异同
2012/07/16 面试题
建筑设计学生的自我评价
2014/01/16 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
求职信范文怎么写
2015/03/19 职场文书
同学联谊会邀请函
2019/06/24 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
Log4j.properties配置及其使用
2021/08/02 Java/Android
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技