微信小程序如何获取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性能优化的38个建议
Mar 04 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
May 05 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
详解JS函数重载
Dec 04 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
Apr 05 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
react.js CMS 删除功能的实现方法
Apr 17 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 Javascript
node通过express搭建自己的服务器
Sep 30 Javascript
纯JS实现五子棋游戏
May 28 Javascript
原生JavaScript实现换肤
Feb 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
php简单浏览目录内容的实现代码
2013/06/07 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
python简单程序读取串口信息的方法
2015/03/13 Python
python实现的简单抽奖系统实例
2015/05/22 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python实现微信自动回复机器人功能
2019/07/11 Python
python 创建一维的0向量实例
2019/12/02 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
有机童装:Toby Tiger
2018/05/23 全球购物
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
社区娱乐活动方案
2014/08/21 职场文书
田径运动会通讯稿
2014/09/13 职场文书
淘宝好评语句大全
2014/12/31 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android