From b0bec742cab7fb3aaa9567ed8928bf424f0af957 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Fri, 6 Mar 2026 20:33:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20Convex=20URL=20=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E5=92=8C=E8=AE=A4=E8=AF=81=20token=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/convex.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/modules/convex.ts b/src/modules/convex.ts index d5681f3..bfebdb5 100644 --- a/src/modules/convex.ts +++ b/src/modules/convex.ts @@ -3,6 +3,9 @@ import { ConvexClient, AuthTokenFetcher, ConvexHttpClient } from "convex/browser const url = localStorage.getItem("CONVEX_URL") || 'https://convex.kevisual.cn' const client = new ConvexClient(url!); const httpClient = new ConvexHttpClient(url!); +if (url !== 'https://convex.kevisual.cn') { + console.warn("当前使用的Convex URL为:", url, "请确保这是你想要连接的Convex实例"); +} export const initConvex = async () => { const getToken = async () => { const token = localStorage.getItem("token"); @@ -16,12 +19,21 @@ export const initConvex = async () => { return null; } const authTokenFetcher: AuthTokenFetcher = async ({ forceRefreshToken }: { forceRefreshToken: boolean }) => { - if (forceRefreshToken) { - const token = await getToken(); - // console.log("fetch got token:", token); - return token; + // 无论是否强制刷新,都优先使用缓存(除非缓存无效) + if (!forceRefreshToken) { + const cachedToken = sessionStorage.getItem("convex_token"); + if (cachedToken) { + return cachedToken; + } } - return null; + + // 没有缓存或强制刷新时,获取新 token + const token = await getToken(); + if (token) { + sessionStorage.setItem("convex_token", token); + } + return token; + } client.setAuth(authTokenFetcher, (isAuthenticated) => { console.log("Auth isAuthenticated:", isAuthenticated);