Skip to content

1. 基本流程

  • 前端调用wx.login接口获取code,将code发送给后端;
  • 后端调用code2Session,根据code获取openid和session_key;

2. wx.login接口

wx.login用于前端获取登录凭证(code)。 在小程序初始化(app.js 的 onLaunch 生命周期)时自动获取 code,用于实现 “打开小程序即登录” 的无感体验,无需用户手动触发。

js
// app.js
App({
  onLaunch() {
    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        wx.request({
            url: 'https://example.com/onLogin',
            data: {
                code: res.code
            }
        })
      }
    })
  },
})

3. code2Session接口

code2Session用于后端根据code获取openid和session_key。

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

参数类型是否必填描述
appidstring小程序appid
secretstring小程序appsecret
js_codestring登录时获取的code
grant_typestring默认:authorization_code

成功时返回参数

参数类型描述
openidstring用户唯一标识
session_keystring会话密钥
unionidstring当且仅当该小程序已绑定到微信开放平台账号时返回

错误时返回参数

参数类型描述
errcodenumber错误码
errmsgstring错误信息

信息

微信开放平台(访问地址为:https://open.weixin.qq.com),为开发者提供将移动应用、网站应用、小程序、小游戏、公众号、服务号、微信小店、联盟带货机构、小店带货助手账号绑定到同一个开放平台后可获得 unionid 实现将用户身份关联的功能。