YM
2024-03-27 e4f61bb43673d0934b549fc865f228188aa03528
assets/js/login.js
@@ -1,9 +1,7 @@
import { setSessionGuid } from "./userAction"
export const checkLoginInfo = (app, callback) => {
   const token = wx.getStorageSync(app.config.tokenKey)
   if (!token) {
export const loginInfo = (app, callback) => {
      wx.login({
         success: (res) => {
            wx.getUserInfo({
@@ -15,8 +13,25 @@
                     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]
                           }
                        }
                        url += "?" + option
                     }
                     debugger
                     console.log(url);
                        wx.navigateTo({
                           url: "/pages/bindInfo/index?code=" + res.code,
                        url: "/pages/bindInfo/index?page=" + encodeURIComponent(url),
                        });
                     } else {
                        wx.login({
@@ -24,14 +39,17 @@
                              app.MG.identity.loginByWeChatAppCode({
                                 code: res.code,
                                 appRefCode: app.config.appRefCode,
                                 platform: "weChatAppCustom",
                              platform: "WeChatAppCustom",
                                 encryptedData: infoRes.encryptedData,
                                 iv: infoRes.iv
                              }).then(res => {
                                 if (res && res.status == "Ok") {
                                 // 储存token
                                    wx.setStorageSync(app.config.tokenKey, res.token);
                                 // 记录登录统计
                                    setSessionGuid()
                                    callback(res.token)
                                 // 获取用户信息
                                 getUserInfo(app, callback, res.token)
                                 } else {
                                    console.log(res);
                                    callback(false)
@@ -57,7 +75,29 @@
            callback(false)
         }
      })
   } else {
      callback(token)
   }
// 获取登录用户身份
const getUserInfo = (app, callback, token) => {
   app.MG.identity.getCurrentAppUser().then(res => {
      // 用户信息优先级:教师认证 > 微信 > 学生(注册时默认)
      if (res) {
         let defaultUser = {};
         let WeChatInfo = res.infoList.find((item) => item.type === "WeChat");
         let phoneNumber = res.secretList.find(i => i.type == 'MobilePhone')
         if (WeChatInfo) {
            defaultUser = {
               nickName: WeChatInfo.name,
               avatarUrl: WeChatInfo.icon,
               weChatId: WeChatInfo.id
            }
         }
         if (phoneNumber) {
            defaultUser.phoneNumber = phoneNumber.credential
         }
         wx.setStorageSync(app.config.userInfoKey, JSON.stringify(defaultUser));
      }
      callback(token);
   });
}