微信小程序如何获取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 29 Javascript
教你在heroku云平台上部署Node.js应用
Jul 30 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
JavaScript中自定义事件用法分析
Dec 23 Javascript
jQuery中empty()方法用法实例
Jan 16 Javascript
jQuery动态改变多行文本框高度的方法
Sep 07 Javascript
jQuery Easyui datagrid连续发送两次请求问题
Dec 13 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
Apr 25 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
Dec 12 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 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 问卷调查结果统计
2015/10/08 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
python自动化测试之setUp与tearDown实例
2014/09/28 Python
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python 递归函数详解及实例
2016/12/27 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
C#基础面试题
2016/10/17 面试题
中专毕业生自我鉴定
2014/02/02 职场文书
客服部班长工作责任制
2014/02/25 职场文书
活动总结模板
2014/05/09 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
Java 死锁解决方案
2022/05/11 Java/Android