最近在研究通过Koa获取获取小程序unionId、openId
开始前先看下UnionID 机制说明
准备工作
小程序相关
- 小程序appId、AppSecret:登录小程序管理即可看到(AppSecret生成后记得保存)
Koa相关
node + Koa这2个安装过程就不多说了,下面列出koa用到的中间件
- koa-body:解析body的中间件
- koa-router:路由处理的中间件
- superagent:轻量级客户端请求库
获取小程序unionId、openId流程
- 通过小程序
wx.login()
调用接口获取登录凭证(code),wx.getUserInfo()
获取相关用户信息, - 结合这2个请求结果后将数据发送给我们的服务端定义的接口
wxLogin()
- 登录凭证校验:
auth.code2Session
,如果在微信平台绑定过了小程序,这里就能拿到unionId、openId、session_key,如果没有在微信开放平台绑定小程序,此处请求后只会返回openid和session_key,需要拿session_key做解密,点击下载解密示例代码
目录结构
小程序代码
//app.js App({ onLaunch: function () { wx.login({ success(res) { if (res.code) { //发起网络请求 // 拿到code let code = res.code; wx.getUserInfo({ success: function (res) { res.code = code; console.log(res) wx.request({ url: 'http://localhost:3000/wxlogin',//请求服务端的登录接口 method: 'POST', data: res, success: (res) => { //拿到返回的openID和unionID } }) } }) } else { console.log('登录失败!' + res.errMsg) } } }) }, globalData: { userInfo: null } })