import {
|
setSessionGuid
|
} from "./userAction"
|
|
|
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 += "&"
|
}
|
option += key + "=" + currentPage.options[key]
|
}
|
}
|
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()
|
} 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)
|
}
|
})
|
}
|
|
// 获取登录用户身份
|
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,
|
userId: res.userId,
|
}
|
}
|
if (phoneNumber) {
|
defaultUser.phoneNumber = phoneNumber.credential
|
}
|
wx.setStorageSync(app.config.userInfoKey, JSON.stringify(defaultUser));
|
}
|
callback(token);
|
});
|
}
|