色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue token過期處理

Token是一種用于驗(yàn)證用戶身份的方式,Vue框架中使用Token來保護(hù)用戶的敏感信息。然而,當(dāng)Token過期后,用戶的請(qǐng)求將被服務(wù)器拒絕,這會(huì)影響用戶的使用體驗(yàn)。因此,我們需要在Vue中處理Token過期。

首先,我們需要在前端代碼中獲取Token的過期時(shí)間。一般情況下,Token會(huì)包含過期時(shí)間信息。我們可以使用如下代碼獲取Token的過期時(shí)間:

let token = localStorage.getItem('token');
let exp = JSON.parse(atob(token.split('.')[1])).exp;
let now = Math.floor(Date.now() / 1000);

代碼中,我們首先從本地存儲(chǔ)中獲取Token,然后解析出其中包含的過期時(shí)間。我們還獲取當(dāng)前時(shí)間的時(shí)間戳,以便后面進(jìn)行對(duì)比。

接下來,我們可以使用Vue的HTTP攔截器,來攔截請(qǐng)求并進(jìn)行Token過期處理。如下所示:

axios.interceptors.response.use(
function(response) {
return response;
},
function(error) {
let status = error.response.status;
if (status === 401) {
let token = localStorage.getItem('token');
let exp = JSON.parse(atob(token.split('.')[1])).exp;
let now = Math.floor(Date.now() / 1000);
if (now >exp) {
// Token過期,跳轉(zhuǎn)到登錄頁
location.href = '/login';
} else {
// Token未過期,刷新Token并重新發(fā)送請(qǐng)求
return axios.post('/api/refreshToken')
.then(response =>{
let newToken = response.data.token;
localStorage.setItem('token', newToken);
error.config.headers.Authorization = 'Bearer ' + newToken;
return axios(error.config);
})
.catch(error =>{
// 刷新Token失敗,跳轉(zhuǎn)到登錄頁
location.href = '/login';
});
}
} else {
return Promise.reject(error);
}
}
);

代碼中,我們使用axios的攔截器,在請(qǐng)求被服務(wù)器拒絕時(shí)進(jìn)行處理。如果返回的狀態(tài)碼為401,表明Token過期或未授權(quán),我們就進(jìn)行Token過期處理。

如果Token已過期,我們就將用戶重定向到登錄頁,以便用戶重新登錄并獲取新的Token。如果Token未過期,我們就先嘗試刷新Token,然后重新發(fā)送請(qǐng)求。

如果刷新Token成功,我們就將新的Token存儲(chǔ)到本地,并在請(qǐng)求頭中加入Bearer Token。然后,我們重新發(fā)送請(qǐng)求,并返回Promise對(duì)象。如果刷新Token失敗,我們就將用戶重定向到登錄頁。

通過以上處理,我們可以在Vue中很好地處理Token過期問題,從而提高用戶的體驗(yàn)。