From 8e8364a6d208fa1dbff769c4cab64683a805a40a Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Tue, 27 Jun 2023 17:54:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=A4=B4=E9=83=A8cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Login.vue | 2 ++ src/service/request.js | 11 +++++++++-- src/utils/cookie.js | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 src/utils/cookie.js diff --git a/src/pages/Login.vue b/src/pages/Login.vue index ce47156..10a843d 100644 --- a/src/pages/Login.vue +++ b/src/pages/Login.vue @@ -100,6 +100,7 @@ import { MessagePlugin } from 'tdesign-vue-next' import { loginApi } from '@/api/login' import { useAccountStore } from '@/store' import { storeToRefs } from 'pinia' +import Cookie from '@/utils/cookie' const accountStore = useAccountStore() const router = useRouter() const formData = ref({ @@ -117,6 +118,7 @@ const onSubmit = async ({ validateResult, firstError }) => { // 将token存入store中 accountStore.updateToken(res?.data?.token) accountStore.updateUsername(res?.data?.username) + Cookie.setCookie('t', res?.data?.token) router.push('/') } else { MessagePlugin.error({ content: '请输入正确的用户名和密码!' }) diff --git a/src/service/request.js b/src/service/request.js index 29f8831..012bca8 100644 --- a/src/service/request.js +++ b/src/service/request.js @@ -1,5 +1,5 @@ import axios from 'axios' - +import Cookie from '@/utils/cookie' class Request { // axios 实例 instance @@ -28,7 +28,14 @@ class Request { this.interceptorsObj = config.interceptors // 拦截器执行顺序 接口请求 -> 实例请求 -> 全局请求 -> 实例响应 -> 全局响应 -> 接口响应 this.instance.interceptors.request.use( - res => res, + config => { + const token = Cookie.getCookie('t') || null + config.headers['Content-Type'] = 'application/json;charset=utf-8' + if (token) { + config.headers['Authorization'] = token + } + return config + }, err => err, ) diff --git a/src/utils/cookie.js b/src/utils/cookie.js new file mode 100644 index 0000000..9c6ebcd --- /dev/null +++ b/src/utils/cookie.js @@ -0,0 +1,32 @@ +// 设置cookie +function setCookie(name, value, iDay = 1) { + var oDate = new Date() + oDate.setDate(oDate.getDate() + iDay) + document.cookie = name + '=' + value + ';expires=' + oDate +} +// 获取cookie +function getCookie(name) { + var arr = document.cookie.split('; ') + for (var i = 0; i < arr.length; i++) { + var arr2 = arr[i].split('=') + if (arr2[0] == name) { + return arr2[1] + } + } + return '' +} +// 移除cookie +function removeCookie(name) { + setCookie(name, 1, -1) +} + +//清除所有cookie函数 +function clearAllCookie() { + var keys = document.cookie.match(/[^ =;]+(?=\=)/g) + if (keys) { + for (var i = keys.length; i--; ) + document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString() + } +} + +export default { setCookie, getCookie, removeCookie, clearAllCookie }