81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
// app.js
|
|
const { userApi } = require("./utils/api");
|
|
const AuthUtil = require("./utils/auth");
|
|
|
|
App({
|
|
globalData: {
|
|
userInfo: null,
|
|
isLoggedIn: false,
|
|
},
|
|
|
|
onLaunch() {
|
|
// 检查小程序版本更新
|
|
this.checkForUpdate();
|
|
// 检查并验证token
|
|
this.checkToken();
|
|
},
|
|
|
|
// 检查小程序版本更新
|
|
checkForUpdate() {
|
|
const updateManager = wx.getUpdateManager()
|
|
|
|
updateManager.onCheckForUpdate(function (res) {
|
|
// 请求完新版本信息的回调
|
|
console.log(res.hasUpdate)
|
|
})
|
|
|
|
updateManager.onUpdateReady(function () {
|
|
wx.showModal({
|
|
title: '更新提示',
|
|
content: '新版本已经准备好,是否重启应用?',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
|
updateManager.applyUpdate()
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
updateManager.onUpdateFailed(function () {
|
|
// 新版本下载失败
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 检查token并获取最新用户数据
|
|
*/
|
|
async checkToken() {
|
|
if (!AuthUtil.hasToken()) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const isValid = await AuthUtil.validateUser();
|
|
|
|
if (isValid) {
|
|
const userInfo = AuthUtil.getUserInfo();
|
|
|
|
// 启动token自动刷新
|
|
AuthUtil.startTokenRefresh();
|
|
|
|
// 检查用户状态
|
|
if (userInfo.user_status < 1) {
|
|
wx.showToast({
|
|
title: "您的账户需要等待管理员审核",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
|
|
// 清除登录状态但不跳转,让用户自己选择
|
|
AuthUtil.clearAuth();
|
|
}
|
|
} else {
|
|
// 用户验证失败,已清除登录状态
|
|
}
|
|
} catch (err) {
|
|
// Token验证异常
|
|
}
|
|
},
|
|
});
|