这篇文章主要介绍了微信小程序获取用户openid的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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)
      }     
    } 
   }); 
  } 
  },
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
中国联通:将寻求专业意见和保留一切权利 保护联通红筹公司权益

中国联通:将寻求专业意

1月28日晚间消息,中国联通公告,此前纽约证交所监管部门
快手最新孖展额4433亿港元超购421倍 市场预测冻资可冲万亿

快手最新孖展额4433亿

截至周四下午5时,据新浪港股不完全统计,快手公开发售部
FF将曲线上市:估值34亿美元 贾跃亭烈火重生回国有望?

FF将曲线上市:估值34亿

Faraday Future今日宣布,将通过与Property Solutions A
投行KeyBanc:推特营收有望超预期,上调其评级至“增持”

投行KeyBanc:推特营收

投行KeyBanc Capital Markets的分析师将推特(TWTR.US)股
贾跃亭为什么还想回国?

贾跃亭为什么还想回国

贾跃亭回国的迹象越来越明显了,FF的利好消息频频传出,还
法拉第未来将通过并购在纳斯达克上市 筹资10亿美元

法拉第未来将通过并购

据报道,法拉第未来将通过并购在纳斯达克上市。
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,