微信小程序获取用户openid的实现


Posted in Javascript onDecember 24, 2018

1、wx.login(OBJECT)

调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。

2、code 换取 session_key

这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。
接口地址:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

详细的介绍请看小程序APIhttps://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

3、获取用户openid实例

//app.js
App({
  globalData:{
    appid:'1wqas2342dasaqwe2323424ac23qwe',//appid需自己提供,此处的appid我随机编写
    secret:'e0dassdadef2424234209bwqqweqw123ccqwa',//secret需自己提供,此处的secret我随机编写
 
  },
  onLaunch: function () {
   var that = this
   var user=wx.getStorageSync('user') || {}; 
   var userInfo=wx.getStorageSync('userInfo') || {}; 
   if((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600))&&(!userInfo.nickName)){ 
    wx.login({ 
    success: function(res){ 
      if(res.code) {
        wx.getUserInfo({
          success: function (res) {
            var objz={};
            objz.avatarUrl=res.userInfo.avatarUrl;
            objz.nickName=res.userInfo.nickName;
            //console.log(objz);
            wx.setStorageSync('userInfo', objz);//存储userInfo
          }
        });
        var d=that.globalData;//这里存储了appid、secret、token串 
        var l='https://api.weixin.qq.com/sns/jscode2session?appid='+d.appid+'&secret='+d.secret+'&js_code='+res.code+'&grant_type=authorization_code'; 
        wx.request({ 
          url: l, 
          data: {}, 
          method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT 
          // header: {}, // 设置请求的 header 
          success: function(res){ 
            var obj={};
            obj.openid=res.data.openid; 
            obj.expires_in=Date.now()+res.data.expires_in; 
            //console.log(obj);
            wx.setStorageSync('user', obj);//存储openid 
          } 
        });
      }else {
        console.log('获取用户登录态失败!' + res.errMsg)
      }     
    } 
   }); 
  } 
  },
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个JQuery操作Table的代码分享
Mar 30 Javascript
css配合jquery美化 select
Nov 29 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
js浏览器本地存储store.js介绍及应用
May 13 Javascript
JavaScript分页功能的实现方法
Apr 25 Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 Javascript
如何在Vue中抽离接口配置文件
Oct 31 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 Javascript
vue-router启用history模式下的开发及非根目录部署方法
Dec 23 #Javascript
小程序实现人脸识别功能(百度ai)
Dec 23 #Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 #Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 #Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 #Javascript
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 #jQuery
JavaScript时间日期操作实例小结【5个示例】
Dec 22 #Javascript
You might like
php中url函数介绍及使用示例
2014/02/13 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
python轻松实现代码编码格式转换
2015/03/26 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Python time库基本使用方法分析
2019/12/13 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
化工专业推荐信范文
2013/11/28 职场文书
写给女朋友的道歉信
2014/01/12 职场文书
协议书格式
2014/04/23 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
家长给老师的感谢信
2015/01/20 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
爱的教育读书笔记
2015/06/26 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
教学工作总结范文5篇
2019/08/19 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js