vue 前端關於token的使用(基礎)
token
token在前後端專案裡越來越被廣泛運用,由於校驗使用者是否正常登陸線上。但一般設定有實效,一個小時,或者兩個小時,當使用者超時不使用時token就會失效,需要重新登陸或者重新重新整理token。
1.vue如何使用token
- 在登陸請求成功後設定token(一般由後端生成token)
this.$https.post('api/user/login', postData).then((res) => {
if(res.code == 0){ //登陸成功
let accessToken = res.result.token;//從後臺返回的token
localStorage.setItem('accessToken', accessToken); // 用localStorage快取token值
}
})
2.封裝http的地方設定全域性token(一次性設定,每次http請求就會自動攜帶token)
import axios from "axios";
import qs from "qs";
const httpService = axios.create({
baseURL: window.api.url,
timeout: 600000,
responseType: `json`,
transformRequest: [data => qs.stringify(data)],
headers: {
"Conten-Type": `appplication/x-www-form-urlencoded;charset=utf-8`
}
});
// 在配置裡引數裡設定Authorization 將 token 賦值給它
httpService.interceptors.request.use(
config => {
// 設定token start
let accessToken = localStorage.getItem('accessToken');
if (accessToken && accessToken !== '') {
config.headers.common['Authorization'] = accessToken;
}
// 設定token end
return config;
},
error => Promise.reject(error)
);
// 在請求響應的地方回設 token
httpService.interceptors.response.use(
response => {
// 回設定token start
let accessToken = response.headers['authorization'];
if (accessToken && accessToken !== '') {
localStorage.setItem('accessToken', accessToken);
}
// 回設定token end
return response.data;
},
// 請求異常資訊提示處理
error => {
if (error && error.response) {
switch (error.response.status) {
case 400:
error.message = `錯誤請求`;
break;
case 401:
error.message = `未授權,請重新登入`;
break;
case 403:
error.message = `拒絕訪問`;
break;
case 404:
error.message = `請求錯誤,未找到該資源`;
break;
case 405:
error.message = `請求方法未允許`;
break;
case 408:
error.message = `請求超時`;
break;
case 500:
error.message = `伺服器端出錯`;
break;
case 501:
error.message = `網路未實現`;
break;
case 502:
error.message = `網路錯誤`;
break;
case 503:
error.message = `服務不可用`;
break;
case 504:
error.message = `網路超時`;
break;
case 505:
error.message = `http版本不支援該請求`;
break;
default:
error.message = `未知錯誤${error.response.status}`;
}
} else {
error.message = "連線到伺服器失敗";
}
return Promise.reject(error);
}
);
// 請求方法封裝
/*
* get請求
* url:請求地址
* params:引數
* */
export function get(url, params = {}) {
return new Promise((resolve, reject) => {
httpService({
url: url,
method: `get`,
params: params
})
.then(response => {
resolve(response);
})
.catch(error => {
reject(error);
});
});
}
/*
* post請求
* url:請求地址
* params:引數
* */
export function post(url, params = {}) {
return new Promise((resolve, reject) => {
httpService({
url: url,
method: `post`,
data: params
})
.then(response => {
resolve(response);
})
.catch(error => {
reject(error);
});
});
}
/*
* 檔案上傳
* url:請求地址
* params:引數
* */
export function fileUpload(url, params = {}) {
return new Promise((resolve, reject) => {
httpService({
url: url,
method: `post`,
data: params,
headers: { "Content-Type": `multipart/form-data` }
})
.then(response => {
resolve(response);
})
.catch(error => {
reject(error);
});
});
}
export default {
get,
post,
fileUpload
};
本篇文章僅供參考學習,做筆記更新,資料是經過觀看多位前輩資料學會而來,但不記得是哪幾位前輩了,晚輩在此感謝各位提供的學習資料,我自學習並在專案中使用後,經過自我消化,現當做筆記記錄並分享給更多想需要的同行。
相關文章
- 關於vue基礎總結Vue
- 面試-前端基礎速刷-Vue面試前端Vue
- jwt生成token和token解析基礎JWT
- 基於vue 做了關於token驗證的例項,和移動端下fixed失效的解決方案Vue
- 關於hive的基礎Hive
- 前端VUE基於gitlab的CI_CD前端VueGitlab
- 關於mybatis,需要掌握的基礎MyBatis
- 關於node.js的基礎Node.js
- 基於 JWT + Refresh Token 的使用者認證實踐JWT
- vue-cli3 搭建的前端專案基礎模板Vue前端
- 【前端Vue】Vue從0基礎完整教程第1篇:vue基本概念,vue-cli的使用【附程式碼文件】前端Vue
- 關於DataTable的兩篇基礎文章
- 關於線段樹基礎
- 基於token的會話保持機制會話
- 基於vue2.0的weex實踐(前端視角)Vue前端
- vue1 x 基礎使用(一)Vue
- 前端——基礎前端
- 前端基礎前端
- VUE基礎Vue
- 關於mysql基礎知識的介紹MySql
- 前端基礎之jQuery基礎前端jQuery
- web前端基於vue的大型專案分模組開發Web前端Vue
- 基於Vue 2的前端如何引入評論區元件ArtalkVue前端元件
- node實現基於token的身份驗證
- 基於以太坊的Token開發步驟
- 基於分層的token架構設計架構
- Python基礎:關於__name__Python
- 前端資料結構---相關基礎概念前端資料結構
- web_前端開發JS框架篇-Vue基礎入門版-基礎語法Web前端JS框架Vue
- 關於在Vue中使用WebScoket的隨筆VueWeb
- 關於公關專案管理的基礎意識(轉)專案管理
- Vue.js的基礎Vue.js
- VUE的基礎案例1Vue
- 【web前端基礎 | JS基礎】物件Web前端JS物件
- 關於MongoDB的簡單理解(一)--基礎篇MongoDB
- 【機器學習基礎】關於深度學習的Tips機器學習深度學習
- 基於vue-cli3.0構建功能完善的前端架子Vue前端
- 前端基礎_CSS前端CSS