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

refresh token vue

錢浩然2年前8瀏覽0評論

Refresh Token 是一種用于長期保護 API 安全性的機制,它可以在第一次認證成功后,讓用戶只需要在過期時間內(nèi)進行 Refresh 操作就能繼續(xù)訪問 API。Vue.js 作為一種流行的前端框架,也提供了 Refresh Token 的實現(xiàn)方式。

在 Vue 中實現(xiàn) Refresh Token 需要在請求攔截器和響應攔截器中進行處理。首先需要在請求攔截器中將 Token 附加到 Headers 中,然后根據(jù) Token 的過期時間來判斷是否需要進行 Refresh 操作,如果需要則發(fā)送 Refresh 請求,更新 Token。同時,在響應攔截器中需要對返回的狀態(tài)碼進行判斷,如果是 401,則表示 Token 已過期,需要進行 Refresh 操作,否則直接返回數(shù)據(jù)。

// 請求攔截器
axios.interceptors.request.use(
config =>{
const token = localStorage.getItem('token')
if (token) {
config.headers.common['Authorization'] = `Bearer ${token}`
}
return config
},
error =>{
return Promise.reject(error)
}
)
// 響應攔截器
axios.interceptors.response.use(
response =>{
return response
},
async error =>{
const originalRequest = error.config
if (error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true
const refreshToken = localStorage.getItem('refreshToken')
const newToken = await axios.post('/api/refreshToken', { refreshToken })
localStorage.setItem('token', newToken.data.accessToken)
return axios(originalRequest)
}
return Promise.reject(error)
}
)

在上面的代碼中,我們使用 Axios 庫的攔截器機制實現(xiàn)了 Refresh Token。同時,為了防止多次刷新 Token,我們使用了 _retry 標志來做標記,以確保 Refresh 操作只進行一次。另外,Refresh Token 的實現(xiàn)可以結(jié)合 Vuex 和路由攔截器來完成,以實現(xiàn)更細粒度的權(quán)限控制。