3).后端根据appid(后台取得)+appsecret(后台取得)+code(前端发送)发送到微信接口,得到session_key+openid等
接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// wx.openSetting({
// })
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => { //console.log(112233);
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
}else{
wx.authorize({
scope: 'scope.userInfo',
success: res => {
console.log(111111);
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
},
fail:function(res){
console.log(222);
}
})
}
}
})
3. 身份校验
提供my_session_key,rawData,signature,callback 后端进行校验
后端校验:2).根绝my_session_key,从Mongo中查询是否存在,存在则用户已登录,发送success状态码,失败则用户未登录或登录过期,发送fault状态码
3).计划任务定时轮询,将符合要求的提醒事件发送服务通知.(服务器定时任务)