1. 程式人生 > >vue之登錄和token處理

vue之登錄和token處理

common www spa post sset 狀態 outer fun def

應用場景一

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) })

vue之登錄和token處理