最近在研究通过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做解密,点击下载解密示例代码
目录结构
小程序代码
[js]
//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
}
})
[/js]