From 6975f5709593c93b4cf37f1ff7aff4eb304bc0d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B5=E5=AE=AA=E7=91=9E?= <9198107+min-xianrui@user.noreply.gitee.com> Date: Tue, 7 Jan 2025 23:50:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=B7=E6=B1=82=E5=86=85?= =?UTF-8?q?=E5=AE=B9~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- src/api/user/frontUserApi.ts | 43 +++++++++++++++++++++++++++++++++ src/composables/adminRequest.ts | 9 +++---- src/composables/frontRequest.ts | 29 +++++++++++++++++----- src/stores/userStore.ts | 1 + 5 files changed, 72 insertions(+), 12 deletions(-) create mode 100644 src/api/user/frontUserApi.ts diff --git a/.env b/.env index 63dca70..6773b68 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # 通用环境变量 # 前端接口 -VITE_API_FRONT_BASE_URL = http://localhost:18080 +VITE_API_FRONT_BASE_URL = http://localhost:18081 #后端接口 VITE_ADMIN_API_BASE_URL = http://localhost:18080 diff --git a/src/api/user/frontUserApi.ts b/src/api/user/frontUserApi.ts new file mode 100644 index 0000000..042164d --- /dev/null +++ b/src/api/user/frontUserApi.ts @@ -0,0 +1,43 @@ +/** + * 登录 + * @param data + */ +export function loginFront(data:any) { + frontRequest.post("/api/user/login", data).then(response =>{ + const user = userStore() + user.frontToken = response.data.token + }) +} +/** + * 注册 + * @param data + */ +export function registerFront(data: any) { + return frontRequest.post("/api/user/register", data) +} + +/** + * 获取用户信息 + * @param userId + */ +export function userInfoFront(userId: any) { + return frontRequest.get("/api/user/userInfo", { + params: { userId: userId } + }) +} + +/** + * 修改用户信息 + * @param data + */ +export function userUpdateFront(data:any) { + return frontRequest.put("/api/user/update", data) +} + + +/** + * 退出 + */ +export function logoutFront() { + return frontRequest.post("/api/user/logout") +} diff --git a/src/composables/adminRequest.ts b/src/composables/adminRequest.ts index 7c6d856..3215fbc 100644 --- a/src/composables/adminRequest.ts +++ b/src/composables/adminRequest.ts @@ -24,19 +24,18 @@ adminRequest.interceptors.request.use( // 添加响应拦截器 adminRequest.interceptors.response.use( function (response) { - // 2xx 范围内的状态码都会触发该函数。 - // 对响应数据进行格式化 + if (response.data.code){ const code = response.data.code switch (code) { case 500: - toast.success(response.data.msg) + toast.error(response.data.msg) break case 401: - toast.success(response.data.msg) + toast.error(response.data.msg) break default: - toast.success(response.data.msg) + toast.error(response.data.msg) break } } diff --git a/src/composables/frontRequest.ts b/src/composables/frontRequest.ts index ef7b5d7..3bf97a2 100644 --- a/src/composables/frontRequest.ts +++ b/src/composables/frontRequest.ts @@ -1,12 +1,16 @@ import axios from 'axios' export const frontRequest = axios.create({ - baseURL: import.meta.env.VITE_API_ADMIN_BASE_URL, + baseURL: import.meta.env.VITE_API_FRONT_BASE_URL, }) - // 添加请求拦截器 frontRequest.interceptors.request.use( function (config) { + const token = userStore().frontToken + if (token !== null || token !== undefined) { + //添加header + config.headers.Authorization = token + } // 在发送请求之前做些什么 return config }, @@ -19,8 +23,21 @@ frontRequest.interceptors.request.use( // 添加响应拦截器 frontRequest.interceptors.response.use( function (response) { - // 2xx 范围内的状态码都会触发该函数。 - // 对响应数据进行格式化 + if (response.data.code){ + const code = response.data.code + switch (code) { + case 500: + toast.error(response.data.msg) + break + case 401: + window.open(`/login`, '_self') + toast.error("请重新登录~") + break + default: + toast.error(response.data.msg) + break + } + } if (response.data) { return response.data } @@ -42,8 +59,8 @@ frontRequest.interceptors.response.use( case 500: msg = '服务端错误' break - case 404: - msg = '路由未找到' + case 401: + window.location.href = "/dsds" break default: msg = error.message ?? '未知响应错误' diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts index 19894fa..b879cd4 100644 --- a/src/stores/userStore.ts +++ b/src/stores/userStore.ts @@ -5,6 +5,7 @@ export default defineStore('userStore', { return { isLogin: false, adminToken: "", + frontToken: "", } }, actions: {