From 3ea210559a822e9bec9820daca486e8ea0d14580 Mon Sep 17 00:00:00 2001 From: dolphin <78075021@qq.com> Date: Wed, 3 Jul 2024 17:19:24 +0800 Subject: [PATCH] feat: multi-sign in --- .../bs-comp/chatComponent/MessagePanne.tsx | 4 ++-- src/frontend/src/contexts/userContext.tsx | 19 +++++++++++++++++-- src/frontend/src/controllers/request.ts | 9 +++++++++ .../components/editAssistant/Setting.tsx | 4 ++-- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/components/bs-comp/chatComponent/MessagePanne.tsx b/src/frontend/src/components/bs-comp/chatComponent/MessagePanne.tsx index 707532270..c5b7667ac 100644 --- a/src/frontend/src/components/bs-comp/chatComponent/MessagePanne.tsx +++ b/src/frontend/src/components/bs-comp/chatComponent/MessagePanne.tsx @@ -70,8 +70,8 @@ export default function MessagePanne({ useName, guideWord, loadMore }) { type = 'separator' } else if (msg.files?.length) { type = 'file' - } else if (['tool', 'flow', 'knowledge'].includes(msg.category) - || msg.category === 'processing') { // 项目演示? + } else if (['tool', 'flow', 'knowledge'].includes(msg.category)){ + // || msg.category === 'processing') { // 项目演示? type = 'runLog' } else if (msg.thought) { type = 'system' diff --git a/src/frontend/src/contexts/userContext.tsx b/src/frontend/src/contexts/userContext.tsx index 7f5e827a3..8f48a775c 100644 --- a/src/frontend/src/contexts/userContext.tsx +++ b/src/frontend/src/contexts/userContext.tsx @@ -1,7 +1,8 @@ +import { toast } from "@/components/bs-ui/toast/use-toast"; import { ReactNode, createContext, useLayoutEffect, useState } from "react"; import { delComponentApi, getComponents, overridComponent, saveComponent } from "../controllers/API"; -import { getUserInfo } from "../controllers/API/user"; -import { captureAndAlertRequestErrorHoc } from "../controllers/request"; +import { getUserInfo, logoutApi } from "../controllers/API/user"; +import { captureAndAlertRequestErrorHoc, requestInterceptor } from "../controllers/request"; import { User } from "../types/api/user"; type userContextType = { @@ -98,6 +99,20 @@ export function UserProvider({ children }: { children: ReactNode }) { return } + // 异地登录强制退出 + requestInterceptor.remoteLoginFuc = (msg) => { + logoutApi().then(_ => { + setUser(null) + localStorage.removeItem('isLogin') + }) + + toast({ + title: '提示', + description: msg.split(`\n`), + variant: 'error' + }) + } + // 获取用户信息 getUserInfo().then(res => { setUser(res.user_id ? res : null) localStorage.setItem('UUR_INFO', res.user_id ? String(res.user_id) : '') diff --git a/src/frontend/src/controllers/request.ts b/src/frontend/src/controllers/request.ts index 975ed0396..a36aae1e0 100644 --- a/src/frontend/src/controllers/request.ts +++ b/src/frontend/src/controllers/request.ts @@ -6,15 +6,24 @@ const customAxios = axios.create({ baseURL: import.meta.env.BASE_URL // 配置 }); +export const requestInterceptor = { + remoteLoginFuc(msg) { } +}; customAxios.interceptors.response.use(function (response) { if (response.data.status_code === 200) { return response.data.data; } + // 无权访问 if (response.data.status_code === 403) { location.href = __APP_ENV__.BASE_URL + '/403' return Promise.reject(response.data.status_message); } + // 异地登录 + if (response.data.status_code === 10604) { + requestInterceptor.remoteLoginFuc(response.data.status_message) + return Promise.reject(response.data.status_message); + } return Promise.reject(response.data.status_message); }, function (error) { console.error('application error :>> ', error); diff --git a/src/frontend/src/pages/SkillPage/components/editAssistant/Setting.tsx b/src/frontend/src/pages/SkillPage/components/editAssistant/Setting.tsx index bb7313661..2b2804541 100644 --- a/src/frontend/src/pages/SkillPage/components/editAssistant/Setting.tsx +++ b/src/frontend/src/pages/SkillPage/components/editAssistant/Setting.tsx @@ -304,12 +304,12 @@ export default function Setting() { - + {/* e.stopPropagation()} > - + */} );