wx.login(OBJECT)

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

OBJECT参数说明:

参数名 类型 必填 说明
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数名 类型 说明
errMsg String 调用结果
code String 用户允许登录后,回调内容会带上code(有效期五分钟),开发者需要将code发送到开发者服务器后台,使用code换取session_key api,将code换成openid和session_key

示例代码:

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

code换取session_key

这是一个HTTP接口,开发者服务器使用登录凭证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

请求参数:

参数 必填 说明
appid 公众号唯一标识
secret 公众号的app secret
js_code 登录时获取的code
grant_type 填写为authorization_code

返回参数:

参数 说明
openid 用户唯一标识
session_key 会话密钥
expires_in 会话有效期, 以秒为单位, 例如2592000代表会话有效期为30天

返回说明:

//正常返回的JSON数据包
{
      "openid":"OPENID",
      "session_key":"SESSIONKEY"
      "expires_in":2592000
}
//错误时返回JSON数据包(示例为Code无效)
{
    "errcode":40029,
    "errmsg":"invalid code"
}

个结果 ""

    没有找到相关内容 ""