近期业务用到微信登陆并同步mongo数据库,但目前微信官方只给了wafer2-quickstart-nodejs这个koa2+mysql方案,google+git也并没有找到轮子或方案,就自己写了个轮子(附小程序demo)
地址:https://github.com/seawind8888/weapp-node-mongo-scaffold
同步流程
微信官方文档只给了微信登录流程图,但并没有给出同步数据库登录的流程。并且各种openId、sessionKey、iv等相关的鉴权字段也是搞得人很懵逼,按照自己轮流程做了个图,供参考
效果实现
先启动项目
使用微信开发者工具导入项目目录下example项目,并填入自己申请的AppID
进入项目,关闭详情 - 不校验合法域名
点击微信同步登陆,提示用户入库成功,并返回session_key和token(可存入storage并加入请求header)
mongo入库用户信息成功
Tips: 客户端调用wx.login生成token,实际有两个鉴权逻辑(微信鉴权,客户端交互token鉴权),客户端可先使用wx.checkSession判断微信鉴权,再获取客户端鉴权
同步实现逻辑
1 | loginAction = async (ctx) => { |