| | |
| | | import { setSessionGuid } from "./userAction" |
| | | |
| | | import { |
| | | setSessionGuid |
| | | } from "./userAction" |
| | | const app = getApp(); |
| | | |
| | | export const loginInfo = (app, callback) => { |
| | | wx.login({ |
| | | success: (res) => { |
| | | wx.getUserInfo({ |
| | | success: (infoRes) => { |
| | | app.MG.identity.checkWeChatAppAccount({ |
| | | code: res.code, |
| | | appCode: app.config.appRefCode, |
| | | encryptedData: infoRes.encryptedData, |
| | | iv: infoRes.iv |
| | | }).then(loginRes => { |
| | | if (!loginRes) { |
| | | const pages = getCurrentPages(); |
| | | const currentPage = pages[pages.length - 1]; |
| | | let url = `/${currentPage.route}`; |
| | | if (Object.keys(currentPage.options).length) { |
| | | let option = ""; |
| | | for (const key in currentPage.options) { |
| | | if (currentPage.options[key]) { |
| | | if (option) { |
| | | option += "&" |
| | | if (app.config.appId == 27) { |
| | | wx.navigateTo({ |
| | | url: "/pages/testLogin/index", |
| | | }); |
| | | } else { |
| | | wx.login({ |
| | | success: (res) => { |
| | | wx.getUserInfo({ |
| | | success: (infoRes) => { |
| | | app.MG.identity.checkWeChatAppAccount({ |
| | | code: res.code, |
| | | appCode: app.config.appRefCode, |
| | | encryptedData: infoRes.encryptedData, |
| | | iv: infoRes.iv |
| | | }).then(loginRes => { |
| | | if (!loginRes) { |
| | | const pages = getCurrentPages(); |
| | | const currentPage = pages[pages.length - 1]; |
| | | let url = `/${currentPage.route}`; |
| | | if (Object.keys(currentPage.options).length) { |
| | | let option = ""; |
| | | for (const key in currentPage.options) { |
| | | if (currentPage.options[key]) { |
| | | if (option) { |
| | | option += "&" |
| | | } |
| | | option += key + "=" + currentPage.options[key] |
| | | } |
| | | option += key + "=" + currentPage.options[key] |
| | | } |
| | | url += "?" + option |
| | | } |
| | | url += "?" + option |
| | | console.log(url); |
| | | wx.navigateTo({ |
| | | url: "/pages/bindInfo/index?page=" + encodeURIComponent(url), |
| | | }); |
| | | } else { |
| | | wx.login({ |
| | | success: (res) => { |
| | | app.MG.identity.loginByWeChatAppCode({ |
| | | code: res.code, |
| | | appRefCode: app.config.appRefCode, |
| | | platform: "WeChatAppCustom", |
| | | encryptedData: infoRes.encryptedData, |
| | | iv: infoRes.iv |
| | | }).then(res => { |
| | | if (res && res.status == "Ok") { |
| | | // 储存token |
| | | wx.setStorageSync(app.config.tokenKey, res.token); |
| | | // 获取用户信息 |
| | | getUserInfo(app, callback, res.token) |
| | | // 记录登录统计 |
| | | setSessionGuid() |
| | | //登录记录积分 |
| | | app.MG.app.creatUserBehavior({ |
| | | refCode: "sign" |
| | | }) |
| | | } else { |
| | | console.log(res); |
| | | callback(false) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err); |
| | | callback(false) |
| | | } |
| | | }) |
| | | } |
| | | debugger |
| | | console.log(url); |
| | | wx.navigateTo({ |
| | | url: "/pages/bindInfo/index?page=" + encodeURIComponent(url), |
| | | }); |
| | | } else { |
| | | wx.login({ |
| | | success: (res) => { |
| | | app.MG.identity.loginByWeChatAppCode({ |
| | | code: res.code, |
| | | appRefCode: app.config.appRefCode, |
| | | platform: "WeChatAppCustom", |
| | | encryptedData: infoRes.encryptedData, |
| | | iv: infoRes.iv |
| | | }).then(res => { |
| | | if (res && res.status == "Ok") { |
| | | // 储存token |
| | | wx.setStorageSync(app.config.tokenKey, res.token); |
| | | // 获取用户信息 |
| | | getUserInfo(app, callback, res.token) |
| | | // 记录登录统计 |
| | | // setSessionGuid() |
| | | } else { |
| | | console.log(res); |
| | | callback(false) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err); |
| | | callback(false) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err); |
| | | callback(false) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err); |
| | | callback(false) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err); |
| | | callback(false) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err); |
| | | callback(false) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | // 获取登录用户身份 |
| | | const getUserInfo = (app, callback, token) => { |
| | | app.MG.identity.getCurrentAppUser().then(res => { |
| | | // 用户信息优先级:教师认证 > 微信 > 学生(注册时默认) |
| | | if (res) { |
| | | let defaultUser = {}; |
| | | let nickNameData = res.infoList.find((item) => item.type == 'nickName') |
| | | let WeChatInfo = res.infoList.find((item) => item.type === "WeChat"); |
| | | let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher') |
| | | let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo') |
| | | let phoneNumber = res.secretList.find(i => i.type == 'MobilePhone') |
| | | |
| | | if (WeChatInfo) { |
| | | let emailInfo = res.secretList.find((item) => item.type == 'EMail') |
| | | if (teacherRole && teacherInfos) { |
| | | defaultUser = { |
| | | nickName: WeChatInfo.name, |
| | | avatarUrl: WeChatInfo.icon, |
| | | weChatId: WeChatInfo.id |
| | | ...teacherInfos, |
| | | nickName: nickNameData && JSON.parse(nickNameData.data).nickName ? JSON.parse(nickNameData.data).nickName : WeChatInfo.name, |
| | | icon: nickNameData && JSON.parse(nickNameData.data).icon ? JSON.parse(nickNameData.data).icon : WeChatInfo.icon, |
| | | userId: res.userId, |
| | | role: 'Teacher', |
| | | roleId: teacherRole.role.id, |
| | | Email: emailInfo ? emailInfo.credential : JSON.parse(teacherInfos.data).email, |
| | | } |
| | | } else if (WeChatInfo) { |
| | | defaultUser = { |
| | | nickName: nickNameData && JSON.parse(nickNameData.data).nickName ? JSON.parse(nickNameData.data).nickName : WeChatInfo.name, |
| | | icon: nickNameData && JSON.parse(nickNameData.data).icon ? JSON.parse(nickNameData.data).icon : WeChatInfo.icon, |
| | | weChatId: WeChatInfo.id, |
| | | userId: res.userId, |
| | | } |
| | | } |
| | | if (phoneNumber) { |
| | | defaultUser.phoneNumber = phoneNumber.credential |
| | | } |
| | | |
| | | wx.setStorageSync(app.config.userInfoKey, JSON.stringify(defaultUser)); |
| | | } |
| | | callback(token); |