Browse Source

登录优化

master
blue 2 years ago
parent
commit
e4d3cad822
  1. 28
      im-uniapp/App.vue
  2. 4
      im-uniapp/common/request.js
  3. 16
      im-uniapp/pages/login/login.vue

28
im-uniapp/App.vue

@ -243,18 +243,32 @@
// this.audioTip = uni.createInnerAudioContext(); // this.audioTip = uni.createInnerAudioContext();
// this.audioTip.src = "/static/audio/tip.wav"; // this.audioTip.src = "/static/audio/tip.wav";
// this.audioTip.play(); // this.audioTip.play();
} },
isExpired(loginInfo){
if(!loginInfo || !loginInfo.expireTime){
return true;
}
return loginInfo.expireTime < new Date().getTime();
},
}, },
onLaunch() { onLaunch() {
// //
if (uni.getStorageSync("loginInfo")) { let loginInfo = uni.getStorageSync("loginInfo")
if (!this.isExpired(loginInfo)) {
console.log("初始化")
// //
this.init() this.init();
} else { //
// uni.switchTab({
uni.navigateTo({ url: "/pages/chat/chat"
url: "/pages/login/login"
}) })
} else{
//
// #ifdef H5
uni.navigateTo({
url: "/pages/login/login"
})
// #endif
} }
} }
} }

4
im-uniapp/common/request.js

@ -41,7 +41,9 @@ const request = (options) => {
getApp().exit(); getApp().exit();
return; 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.forEach(cb => cb());
requestList = []; requestList = [];
isRefreshToken = false; isRefreshToken = false;

16
im-uniapp/pages/login/login.vue

@ -3,7 +3,7 @@
<view class="login-title">欢迎登录</view> <view class="login-title">欢迎登录</view>
<uni-forms style="margin-top: 100px;" :modelValue="loginForm" :rules="rules" validate-trigger="bind"> <uni-forms style="margin-top: 100px;" :modelValue="loginForm" :rules="rules" validate-trigger="bind">
<uni-forms-item name="userName"> <uni-forms-item name="userName">
<uni-easyinput type="text" v-model="loginForm.userName" prefix-icon="person" focus placeholder="用户名" /> <uni-easyinput type="text" v-model="loginForm.userName" prefix-icon="person" placeholder="用户名" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item name="password"> <uni-forms-item name="password">
<uni-easyinput type="password" v-model="loginForm.password" prefix-icon="locked" placeholder="密码" /> <uni-easyinput type="password" v-model="loginForm.password" prefix-icon="locked" placeholder="密码" />
@ -45,11 +45,12 @@
url: '/login', url: '/login',
data: this.loginForm, data: this.loginForm,
method: 'POST' method: 'POST'
}).then(data => { }).then(loginInfo => {
console.log("登录成功,自动跳转到聊天页面...") console.log("登录成功,自动跳转到聊天页面...")
uni.setStorageSync("userName", this.loginForm.userName); uni.setStorageSync("userName", this.loginForm.userName);
uni.setStorageSync("password", this.loginForm.password); uni.setStorageSync("password", this.loginForm.password);
uni.setStorageSync("loginInfo", data); loginInfo.expireTime = new Date().getTime() + loginInfo.refreshTokenExpiresIn*1000;
uni.setStorageSync("loginInfo", loginInfo);
// App.vue // App.vue
getApp().init() getApp().init()
// //
@ -59,17 +60,10 @@
}) })
} }
}, },
onLoad() { onLoad() {
this.loginForm.userName = uni.getStorageSync("userName"); this.loginForm.userName = uni.getStorageSync("userName");
this.loginForm.password = uni.getStorageSync("password"); this.loginForm.password = uni.getStorageSync("password");
let loginInfo = uni.getStorageSync("loginInfo");
if (loginInfo) {
//
uni.switchTab({
url: "/pages/chat/chat"
})
}
} }
} }
</script> </script>

Loading…
Cancel
Save