欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue token后臺(tái)刷新

Token是一種在前后端分離的應(yīng)用中擔(dān)當(dāng)身份驗(yàn)證作用的技術(shù)。Vue框架中,Token的實(shí)現(xiàn)可以使得用戶能夠在登錄后,在客戶端保持登錄狀態(tài),訪問(wèn)需要驗(yàn)證身份的頁(yè)面或資源時(shí)不必每次重新輸入用戶名和密碼。

通常,當(dāng)用戶登錄時(shí),后端會(huì)生成一個(gè)Token并返回給前端。前端可以將Token存在LocalStorage或SessionStorage中,用于驗(yàn)證用戶身份。但是,在某些情況下,Token可能會(huì)因?yàn)橐恍┰蜻^(guò)期或失效,需要重新刷新。下面我們將介紹如何對(duì)Token進(jìn)行后臺(tái)刷新。

import axios from 'axios'
function refreshToken(){
return axios({
url: '/api/refresh_token/',
method: 'post',
headers : {
'Authorization': 'Bearer ' + localStorage.getItem('token')
}
})
}
axios.interceptors.response.use(undefined, function axiosRetryInterceptor(err) {
const { config, response: { status } } = err
const originalRequest = config
if (status === 401 && !originalRequest._retry) {
originalRequest._retry = true
return refreshToken().then(res =>{
if (res.status === 200) {
localStorage.setItem('token', res.data.token)
//將新的Token存儲(chǔ)到localStorage中
axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token')
return axios(originalRequest)
}
}).catch(err =>{
console.log(err)
})
 }
 return Promise.reject(err)
})

首先,我們定義了refreshToken函數(shù),用于向后端發(fā)起重新獲取Token的請(qǐng)求。在axios請(qǐng)求攔截器中,我們進(jìn)行了錯(cuò)誤處理并重新發(fā)起請(qǐng)求的操作。當(dāng)我們向服務(wù)器發(fā)送請(qǐng)求時(shí),如果返回的HTTP狀態(tài)碼為401(沒(méi)有權(quán)限),則認(rèn)為Token過(guò)期或無(wú)效。我們?cè)谠械恼?qǐng)求基礎(chǔ)上添加了一個(gè)_retry屬性,防止進(jìn)入死循環(huán),然后調(diào)用剛才定義的refreshToken函數(shù)重新獲取Token。如果成功獲取到新的Token,將新的Token存儲(chǔ)到LocalStorage中,同時(shí)將axios中的Authorization字段更新為新的Token以便之后使用。最后,返回添加了新Token的原始請(qǐng)求。

以上就是Vue框架中如何通過(guò)Token后臺(tái)刷新的內(nèi)容。在真正的實(shí)際項(xiàng)目中,需要加入更多錯(cuò)誤處理以及對(duì)多個(gè)請(qǐng)求同時(shí)進(jìn)行重新獲取Token等復(fù)雜情況的處理。但以上的代碼可以作為一個(gè)基礎(chǔ)的框架進(jìn)行參考。當(dāng)然,為了安全性,Token的存儲(chǔ)和傳輸也需要考慮更多方面。