改进 刷新失败的情况
This commit is contained in:
parent
34630760e3
commit
ac3f01a11d
@ -1,6 +1,9 @@
|
||||
import { defineStore } from "pinia";
|
||||
import { useConfigStore } from "@/stores/config";
|
||||
import axios from "axios";
|
||||
|
||||
let timer: any = null;
|
||||
|
||||
export const useUserStore = defineStore("user", {
|
||||
persist: true,
|
||||
state: () => ({
|
||||
@ -39,20 +42,18 @@ export const useUserStore = defineStore("user", {
|
||||
this.logined = true;
|
||||
},
|
||||
setupTimer() {
|
||||
// 如果有 timer
|
||||
if (this.timer) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.timer = setInterval(() => {
|
||||
timer = setInterval(() => {
|
||||
if (this.logined) {
|
||||
if (this.expired_at - Date.now() < 60000) {
|
||||
this.refresh();
|
||||
} else {
|
||||
// 显示还有多长时间过期
|
||||
console.log(
|
||||
"Token will expire in " +
|
||||
(this.expired_at - Date.now()) / 1000 +
|
||||
" seconds"
|
||||
);
|
||||
}
|
||||
// else {
|
||||
// // 显示还有多长时间过期
|
||||
// // console.log("Token will expire in " + (this.expired_at - Date.now()) / 1000 + " seconds");
|
||||
// }
|
||||
}
|
||||
}, 10 * 1000);
|
||||
},
|
||||
@ -69,15 +70,26 @@ export const useUserStore = defineStore("user", {
|
||||
data.set("client_id", configStore.oauth_client_id);
|
||||
data.set("scope", configStore.oauth_scope);
|
||||
|
||||
// axios
|
||||
let refresh = await axios.post(discovery.data.token_endpoint, data);
|
||||
|
||||
this.login(
|
||||
refresh.data.id_token,
|
||||
refresh.data.access_token,
|
||||
refresh.data.refresh_token,
|
||||
refresh.data.expires_in
|
||||
);
|
||||
axios
|
||||
.post(discovery.data.token_endpoint, data)
|
||||
.then((response) => {
|
||||
this.login(
|
||||
response.data.id_token,
|
||||
response.data.access_token,
|
||||
response.data.refresh_token,
|
||||
response.data.expires_in
|
||||
);
|
||||
})
|
||||
.catch((error) => {
|
||||
// if 401
|
||||
if (error.response.status == 401) {
|
||||
console.log("Refresh token failed");
|
||||
}
|
||||
// logout
|
||||
this.logout();
|
||||
clearInterval(timer);
|
||||
return;
|
||||
});
|
||||
},
|
||||
logout() {
|
||||
this.user = {
|
||||
|
Loading…
Reference in New Issue
Block a user