vue之登錄和token處理


應用場景一

Vue刷新token,判斷token是否過期、失效,進行登錄判斷跟token值存儲

刷新token和token是否過期的操作都是由后端實現,前端只負責根據code的不同狀態來做不同的操作:可以跟后端討論不同的狀態對應不同的情況來進行處理

具體實現

/**
* 全局變量 和 設置 、配置等。。。
*/
 
import axios from 'axios' // 引入axios
 
import Storage from '@/assets/js/util/storage.js' // storage工具類,簡單的封裝
 
 
 
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
 
 
 
/* 請求攔截器 */
 
axios.interceptors.request.use(function (config) { // 每次請求時會從localStorage中獲取token
 
    let token = Storage.localGet('token')
 
    if (token) {
    
        token = 'bearer' + ' ' + token.replace(/'|"/g, '') // 把token加入到默認請求參數中
 
        config.headers.common['Authorization'] = token
 
    }
 
    return config
 
}, function (error) {
 
    return Promise.reject(error)
 
})
 
/* 響應攔截器 */
 
axios.interceptors.response.use(function (response) { // ①10010 token過期(30天) ②10011 token無效
 
if (response.data.code === 10010 || response.data.code === 10011) {
 
    Storage.localRemove('token') // 刪除已經失效或過期的token(不刪除也可以,因為登錄后覆蓋)
 
    router.replace({
 
        path: '/login' // 到登錄頁重新獲取token
 
    })
 
} else if (response.data.token) { // 判斷token是否存在,如果存在說明需要更新token
 
    Storage.localSet('token', response.data.token) // 覆蓋原來的token(默認一天刷新一次)
 
}
 
    return response
 
}, function (error) {
 
    return Promise.reject(error)
 
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM