From d51ca40781371e25e1064cec290120de461a65b9 Mon Sep 17 00:00:00 2001 From: keting lu Date: Tue, 18 Mar 2025 15:31:48 +0800 Subject: [PATCH] chore: post message to apo --- web/app/(commonLayout)/layout.tsx | 2 -- web/app/components/base/message-listener.tsx | 34 -------------------- web/service/base.ts | 2 +- web/service/refresh-token.ts | 3 +- 4 files changed, 3 insertions(+), 38 deletions(-) delete mode 100644 web/app/components/base/message-listener.tsx diff --git a/web/app/(commonLayout)/layout.tsx b/web/app/(commonLayout)/layout.tsx index 01d2086b1a..af36d4d961 100644 --- a/web/app/(commonLayout)/layout.tsx +++ b/web/app/(commonLayout)/layout.tsx @@ -8,12 +8,10 @@ import Header from '@/app/components/header' import { EventEmitterContextProvider } from '@/context/event-emitter' import { ProviderContextProvider } from '@/context/provider-context' import { ModalContextProvider } from '@/context/modal-context' -import MessageListener from '../components/base/message-listener' const Layout = ({ children }: { children: ReactNode }) => { return ( <> - diff --git a/web/app/components/base/message-listener.tsx b/web/app/components/base/message-listener.tsx deleted file mode 100644 index eb152dd869..0000000000 --- a/web/app/components/base/message-listener.tsx +++ /dev/null @@ -1,34 +0,0 @@ -'use client' -import { useRouter } from 'next/navigation' -import { useEffect } from 'react' -const MessageListener = () => { - const router = useRouter() - useEffect(() => { - localStorage.removeItem('disable_log_out') - const handleMessage = (event: MessageEvent) => { - if (event.data.action === 'auto-login') { - event.source.postMessage('got', event.origin) - localStorage.setItem('console_token', event.data.data.token) - localStorage.setItem('refresh_token', event.data.data.refreshToken) - sessionStorage.setItem('disable_log_out', true) - window.location.reload() - router.replace(event.data.src) - } - else if(event.data.action === 'clear-token') { - event.source.postMessage('got', event.origin) - localStorage.removeItem('console_token') - localStorage.removeItem('refresh_token') - } - } - - window.addEventListener('message', handleMessage) - - return () => { - window.removeEventListener('message', handleMessage) - } - }, []) - - return null -} - -export default MessageListener diff --git a/web/service/base.ts b/web/service/base.ts index 29aa23e730..13be1880ce 100644 --- a/web/service/base.ts +++ b/web/service/base.ts @@ -417,7 +417,7 @@ export const request = async(url: string, options = {}, otherOptions?: IOther const errResp: Response = err as any if (errResp.status === 401) { const [parseErr, errRespData] = await asyncRunSafe(errResp.json()) - const loginUrl = `${globalThis.location.origin}/signin` + const loginUrl = `${globalThis.location.origin}/dify/signin` if (parseErr) { globalThis.location.href = loginUrl return Promise.reject(err) diff --git a/web/service/refresh-token.ts b/web/service/refresh-token.ts index f42b10cc8e..3e87bef07b 100644 --- a/web/service/refresh-token.ts +++ b/web/service/refresh-token.ts @@ -24,7 +24,7 @@ function waitUntilTokenRefreshed() { const isRefreshingSignAvailable = function (delta: number) { const nowTime = new Date().getTime() const lastTime = globalThis.localStorage.getItem('last_refresh_time') || '0' - return nowTime - parseInt(lastTime) <= delta + return nowTime - Number.parseInt(lastTime) <= delta } // only one request can send @@ -63,6 +63,7 @@ async function getNewAccessToken(timeout: number): Promise { const { data } = await ret.json() globalThis.localStorage.setItem('console_token', data.access_token) globalThis.localStorage.setItem('refresh_token', data.refresh_token) + globalThis.window.parent.postMessage({ type: 'refresh_token', data }, window.location.origin) } } }