From c3d81e837e6350b431583c5cdcc1e0e09b4376c0 Mon Sep 17 00:00:00 2001 From: QYF-GitLab1 <1940665526@qq.com> Date: 星期三, 18 十二月 2024 16:45:47 +0800 Subject: [PATCH] 111 --- assets/js/login.js | 177 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 102 insertions(+), 75 deletions(-) diff --git a/assets/js/login.js b/assets/js/login.js index 049d29f..37380d0 100644 --- a/assets/js/login.js +++ b/assets/js/login.js @@ -1,95 +1,121 @@ import { setSessionGuid } from "./userAction" - +const app = getApp(); +import MG from './middleGround/WebMiddleGroundApi'; +import config from './config'; 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 (config.appId == 27) { + wx.navigateTo({ + url: "/pages/testLogin/index", + }); + } else { + wx.login({ + success: (res) => { + wx.getUserInfo({ + success: (infoRes) => { + MG.identity.checkWeChatAppAccount({ + code: res.code, + appCode: 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) => { + MG.identity.loginByWeChatAppCode({ + code: res.code, + appRefCode: config.appRefCode, + platform: "WeChatAppCustom", + encryptedData: infoRes.encryptedData, + iv: infoRes.iv + }).then(res => { + if (res && res.status == "Ok") { + // 鍌ㄥ瓨token + wx.setStorageSync(config.tokenKey, res.token); + // 鑾峰彇鐢ㄦ埛淇℃伅 + getUserInfo(app, callback, res.token) + // 璁板綍鐧诲綍缁熻 + setSessionGuid() + //鐧诲綍璁板綍绉垎 + MG.app.creatUserBehavior({ + refCode: "sign" + }) + } else { + console.log(res); + callback(false) + } + }) + }, + fail: (err) => { + console.log(err); + callback(false) + } + }) } - 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 => { + 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, + ...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, } @@ -97,7 +123,8 @@ if (phoneNumber) { defaultUser.phoneNumber = phoneNumber.credential } - wx.setStorageSync(app.config.userInfoKey, JSON.stringify(defaultUser)); + + wx.setStorageSync(config.userInfoKey, JSON.stringify(defaultUser)); } callback(token); }); -- Gitblit v1.9.1