init
This commit is contained in:
commit
2b8870a40e
51 changed files with 5845 additions and 0 deletions
89
app.js
Normal file
89
app.js
Normal file
|
@ -0,0 +1,89 @@
|
|||
//app.js
|
||||
const { syncTokens, showToast } = require('./utils/util');
|
||||
const config = require('./utils/config');
|
||||
const cloud = require('./utils/cloud');
|
||||
|
||||
App({
|
||||
onLaunch: function (options) {
|
||||
// 获取本地OTP信息
|
||||
this.getLocalOtpInfo();
|
||||
// 不再自动登录,只在用户点击登录按钮时才登录
|
||||
},
|
||||
|
||||
getLocalOtpInfo() {
|
||||
try {
|
||||
const otpList = wx.getStorageSync('tokens');
|
||||
if (otpList) {
|
||||
this.globalData.otpList = otpList;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("获取本地OTP信息失败:", e);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
async userLogin(options) {
|
||||
try {
|
||||
// 获取微信登录凭证
|
||||
const { code } = await new Promise((resolve, reject) => {
|
||||
wx.login({
|
||||
success: resolve,
|
||||
fail: reject
|
||||
});
|
||||
});
|
||||
|
||||
// 调用后端登录接口
|
||||
const loginResult = await cloud.request({
|
||||
url: config.API_ENDPOINTS.AUTH.LOGIN,
|
||||
method: 'POST',
|
||||
data: { code },
|
||||
needToken: false
|
||||
});
|
||||
|
||||
// 保存登录信息到storage
|
||||
wx.setStorageSync(config.JWT_CONFIG.storage.access, loginResult.accessToken);
|
||||
wx.setStorageSync(config.JWT_CONFIG.storage.refresh, loginResult.refreshToken);
|
||||
|
||||
// 初始化基本用户信息
|
||||
const userInfo = {
|
||||
avatarUrl: wx.getStorageSync('userAvatar') || '/images/default-avatar.png',
|
||||
nickName: wx.getStorageSync('userNickName') || '微信用户'
|
||||
};
|
||||
this.globalData.userInfo = userInfo;
|
||||
|
||||
// 同步OTP数据
|
||||
await this.syncOtpData();
|
||||
|
||||
return userInfo;
|
||||
} catch (error) {
|
||||
console.error('登录失败:', error);
|
||||
showToast('登录失败,请重试', 'none');
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
|
||||
async syncOtpData() {
|
||||
try {
|
||||
// 获取本地数据
|
||||
const localTokens = this.globalData.otpList;
|
||||
|
||||
// 使用util.js中的syncTokens函数进行同步
|
||||
// 注意:syncTokens函数已经被更新为使用cloud模块
|
||||
const syncedTokens = await syncTokens(localTokens);
|
||||
|
||||
// 更新本地存储和全局数据
|
||||
wx.setStorageSync('tokens', syncedTokens);
|
||||
this.globalData.otpList = syncedTokens;
|
||||
|
||||
} catch (error) {
|
||||
console.error('同步OTP数据失败:', error);
|
||||
// 同步失败不显示错误提示,因为这是自动同步过程
|
||||
}
|
||||
},
|
||||
|
||||
globalData: {
|
||||
version: 103,
|
||||
otpList: [],
|
||||
userInfo: null
|
||||
}
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue