我用的后台是nodejs + passport + mongodb
第一步 wx.request 将login 的数据传输到后台 code,iv,encryptedData,
encryptedData 使用 encodeURIComponent
nodejs 接收数据 后 decodeURIComponent(req.query.encryptedData) ,code,iv 用官方库解码。
获取用的头像、openID,昵称
保存信息到数据库
这是后 passports 改返回了。 正常系统回往http 加一个 返回头 set-cookies
但是小程序 不处理 这个头,因此我们获取不了sessionid,
我们必须翻一个json数据,这个数据里面有sessionid
因此我们需要拦截 set-header ,用nodejs onHeaders方法。在这里返回 header 给 小程序
小程序获取sessioid后,每次请求都要加上。
具体代码我放在 github /asmcos 里面了。
如果需要我详细解释代码,可以在这里留言。细节非常多。
涉及
passport操作方法
小程序头如何添加
onheaders 怎么使用
小程序的 encryptedData 怎么解码。。。。。
https://github.com/asmcos/JSJoke/tree/master/wxapp/passport-weapp-mongoose
nodejs 端实现
不知道管理员是否允许我粘贴网址或者代码。
代码在github 上, asmcos