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

 更新时间:2018年12月24日 09:15:07   作者:A_山水子农  
这篇文章主要介绍了微信小程序获取用户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)
      }     
    } 
   }); 
  } 
  },
})

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

相关文章

  • JavaScript 函数的定义-调用、注意事项

    JavaScript 函数的定义-调用、注意事项

    这篇文章主要介绍了JavaScript 函数的定义-调用、注意事项,需要的朋友可以参考下
    2017-04-04
  • 原生JS实现$.param() 函数的方法

    原生JS实现$.param() 函数的方法

    这篇文章主要介绍了原生JS实现$.param() 函数的方法,由于遇到相关序列化的问题,但是vue项目中由于减少队jquery引用的限制,导致不能用$.param来序列化参数,下面小编给大家分享了实例代码,需要的朋友参考下吧
    2018-08-08
  • 小程序getLocation需要在app.json中声明permission字段

    小程序getLocation需要在app.json中声明permission字段

    这篇文章主要介绍了小程序getLocation需要在app.json中声明permission字段,个别需要获取用户地理位置的在开发者工具调试时会出现getLocation需要在app.json中声明permission字段 ,下面我们就一起来解决一下
    2019-04-04
  • 原生js封装运动框架的示例讲解

    原生js封装运动框架的示例讲解

    下面小编就为大家带来一篇原生js封装运动框架的示例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • uniapp添加车牌组件的实现与使用

    uniapp添加车牌组件的实现与使用

    uniapp是2019年火爆的一个Dcloud开发跨平台前端工具,下面这篇文章主要给大家介绍了关于uniapp添加车牌组件的实现与使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 移动端基础事件总结与应用

    移动端基础事件总结与应用

    本文主要介绍了移动端基础事件总结与应用,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 在JavaScript中让this保持正确的指向的解决方案

    在JavaScript中让this保持正确的指向的解决方案

    这篇文章主要介绍了关于在 JavaScript 中如何让 this 保持正确的指向的解决方案,文中给大家介绍了三种解决方案,使用闭包,使用箭头函数和换绑 this这三种方法,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-01-01
  • Maps Javascript

    Maps Javascript

    Maps Javascript...
    2007-01-01
  • javascript使用数组的push方法完成快速排序

    javascript使用数组的push方法完成快速排序

    排序的方法有很多,本节为大家介绍的是使用数组的push方法完成快速排序,当然你也可以举一反三
    2014-09-09
  • JavaScript匿名函数用法分析

    JavaScript匿名函数用法分析

    这篇文章主要介绍了JavaScript匿名函数用法,实例分析了匿名函数的功能、定义及具体用法,非常具有实用价值,需要的朋友可以参考下
    2015-02-02

最新评论