在拜读skyvow大神的m-mall-admin代码
https://github.com/skyvow/m-mall-admin
微信用户登录逻辑代码在controllers/user.js
wechatSignIn(req, res, next)
这函数响应的是一个post请求,会拿到一个request,缩写req,
首先用req.body.code换取session_key,返回的doc是个json格式数据,神似这样
//正常返回的JSON数据包{"openid":"OPENID","session_key":"SESSIONKEY","unionid":"UNIONID"}
//错误时返回JSON数据包(示例为Code无效)
{"errcode":40029,"errmsg":"invalid code"}
doc = JSON.parse(doc)
解析返回结果,如果是正常返回的情况,就在数据库的user表里查找username为openid的用户(前面微信用户注册时候是用这个openid作为username注册的)
this.model.findByName(doc.openid)
如果找不到,说明用户不存在呢,
找到了就是登录成功了
res.tools.setJson(0, '登录成功', {
token: res.jwt.setToken(doc._id)
})
网友评论