diff --git a/im-uniapp/App.vue b/im-uniapp/App.vue index ab6121d..8e8fdc7 100644 --- a/im-uniapp/App.vue +++ b/im-uniapp/App.vue @@ -243,18 +243,32 @@ // this.audioTip = uni.createInnerAudioContext(); // this.audioTip.src = "/static/audio/tip.wav"; // this.audioTip.play(); - } + }, + isExpired(loginInfo){ + if(!loginInfo || !loginInfo.expireTime){ + return true; + } + return loginInfo.expireTime < new Date().getTime(); + }, }, onLaunch() { // 登录状态校验 - if (uni.getStorageSync("loginInfo")) { + let loginInfo = uni.getStorageSync("loginInfo") + if (!this.isExpired(loginInfo)) { + console.log("初始化") // 初始化 - this.init() - } else { - // 跳转到登录页 - uni.navigateTo({ - url: "/pages/login/login" + this.init(); + // 跳转到聊天页面 + uni.switchTab({ + url: "/pages/chat/chat" }) + } else{ + // 跳转到登录页 + // #ifdef H5 + uni.navigateTo({ + url: "/pages/login/login" + }) + // #endif } } } diff --git a/im-uniapp/common/request.js b/im-uniapp/common/request.js index 461ff6b..ea9ed94 100644 --- a/im-uniapp/common/request.js +++ b/im-uniapp/common/request.js @@ -41,7 +41,9 @@ const request = (options) => { getApp().exit(); return; } - uni.setStorageSync("loginInfo", res.data.data); + let newInfo = res.data.data; + newInfo.expireTime = new Date().getTime() + newInfo.refreshTokenExpiresIn*1000; + uni.setStorageSync("loginInfo", newInfo); requestList.forEach(cb => cb()); requestList = []; isRefreshToken = false; diff --git a/im-uniapp/pages/login/login.vue b/im-uniapp/pages/login/login.vue index b0b996f..e3146b0 100644 --- a/im-uniapp/pages/login/login.vue +++ b/im-uniapp/pages/login/login.vue @@ -3,7 +3,7 @@ 欢迎登录 - + @@ -45,11 +45,12 @@ url: '/login', data: this.loginForm, method: 'POST' - }).then(data => { + }).then(loginInfo => { console.log("登录成功,自动跳转到聊天页面...") uni.setStorageSync("userName", this.loginForm.userName); uni.setStorageSync("password", this.loginForm.password); - uni.setStorageSync("loginInfo", data); + loginInfo.expireTime = new Date().getTime() + loginInfo.refreshTokenExpiresIn*1000; + uni.setStorageSync("loginInfo", loginInfo); // 调用App.vue的初始化方法 getApp().init() // 跳转到聊天页面 @@ -59,17 +60,10 @@ }) } }, + onLoad() { this.loginForm.userName = uni.getStorageSync("userName"); this.loginForm.password = uni.getStorageSync("password"); - let loginInfo = uni.getStorageSync("loginInfo"); - if (loginInfo) { - // 跳转到聊天页面 - uni.switchTab({ - url: "/pages/chat/chat" - }) - - } } }