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

vue token后臺刷新

洪振霞2年前7瀏覽0評論

Token是一種在前后端分離的應用中擔當身份驗證作用的技術。Vue框架中,Token的實現可以使得用戶能夠在登錄后,在客戶端保持登錄狀態,訪問需要驗證身份的頁面或資源時不必每次重新輸入用戶名和密碼。

通常,當用戶登錄時,后端會生成一個Token并返回給前端。前端可以將Token存在LocalStorage或SessionStorage中,用于驗證用戶身份。但是,在某些情況下,Token可能會因為一些原因過期或失效,需要重新刷新。下面我們將介紹如何對Token進行后臺刷新。

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存儲到localStorage中
axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token')
return axios(originalRequest)
}
}).catch(err =>{
console.log(err)
})
 }
 return Promise.reject(err)
})

首先,我們定義了refreshToken函數,用于向后端發起重新獲取Token的請求。在axios請求攔截器中,我們進行了錯誤處理并重新發起請求的操作。當我們向服務器發送請求時,如果返回的HTTP狀態碼為401(沒有權限),則認為Token過期或無效。我們在原有的請求基礎上添加了一個_retry屬性,防止進入死循環,然后調用剛才定義的refreshToken函數重新獲取Token。如果成功獲取到新的Token,將新的Token存儲到LocalStorage中,同時將axios中的Authorization字段更新為新的Token以便之后使用。最后,返回添加了新Token的原始請求。

以上就是Vue框架中如何通過Token后臺刷新的內容。在真正的實際項目中,需要加入更多錯誤處理以及對多個請求同時進行重新獲取Token等復雜情況的處理。但以上的代碼可以作為一個基礎的框架進行參考。當然,為了安全性,Token的存儲和傳輸也需要考慮更多方面。