- 初始化的时候wx.login拿到code
- wx.request发送到后端,在后台利用nodejs的request的模块,请求微信官方连接,拿到session_key和用户唯一标识openId,将两者jwt加密返回前端,strorage存储
const result = await new Promise((resolve, reject) => {
request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + appkey + '&js_code=' + code + '&grant_type=authorization_code',
}, (error, response, body) => {
if (!error && response.statusCode === 200) {
console.log(body)
resolve(jwt.sign(JSON.parse(body), P.config.JWTs.secret, { expiresIn: P.config.JWTs.expiresIn }))
}
})
})
- 当用户点击手机号直接登录操作时,将获取的iv, encryptedData连同存在本地的session_key发给后端解码
- 下载小程序官方demo,https://res.wx.qq.com/wxdoc/dist/assets/media/aes-sample.eae1f364.zip
- 获取里边的nodejs的demo文件直接使用,将解码后的数据传回前端。需要注意的是,官方demo源码中的new Buffer已经废弃,需要替换成Buffer.from使用。