微信小程序获取用户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 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
javascript 获取网页参数系统
Jul 19 Javascript
js parsefloat parseint 转换函数
Jan 21 Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
基于jquery实现的树形菜单效果代码
Sep 06 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
Nov 11 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
vue.js父子组件通信动态绑定的实例
Sep 28 Javascript
vue 实现购物车总价计算
Nov 06 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处理Oracle的CLOB实例
2014/11/03 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
Python用GET方法上传文件
2015/03/10 Python
python简单实现基数排序算法
2015/05/16 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python使用python-docx读写word文档
2019/08/26 Python
Python API自动化框架总结
2019/11/12 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
制药工程专业毕业生推荐信
2013/12/24 职场文书
九年级科学教学反思
2014/01/29 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
仲裁协议书
2014/09/26 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
公司食堂管理制度
2015/08/05 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
python tkinter模块的简单使用
2021/04/07 Python