微信小程序获取openid

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

注:调用 login 会引起登录态的刷新,之前的 sessionKey 可能会失效

示例代码:

//app.js
App({
  onLaunch: function() {
    wx.login({
      success: function(res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: https://test.com/onLogin,
            data: {
              code: res.code
            }
          })
        } else {
          console.log(获取用户登录态失败! + res.errMsg)
        }
      }
    });
  }
})

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

接口地址:

①注意: 此时如果你未勾选项目中的“开发环境不效验请求域名、TLS版本以及HTTPS证书”则会报错

到设置->项目设置->勾选:开发环境不校验请求域名、TLS版本以及HTTPS证书

官网提供的获取openid等信息,也如下图所示:

3. 第三步,检测用户登录状态是否有效

示例代码:

wx.checkSession({
  success: function(){
    //session 未过期,并且在本生命周期一直有效
  },
  fail: function(){
    //登录态过期
    wx.login() //重新登录
    ....
  }
})
经验分享 程序员 微信小程序 职场和发展