From 9a36db4765b1de61a6290229ed96ba42d63f45ce Mon Sep 17 00:00:00 2001 From: fallenbagel <98979876+Fallenbagel@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:30:12 +0800 Subject: [PATCH 1/2] fix: disable automatic auth revalidation on auth pages Prevents unnecessary `/api/v1/auth/me` requests on login, setup, and password reset pages. fix #738 --- src/hooks/useUser.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/hooks/useUser.ts b/src/hooks/useUser.ts index 2a14ad1d56..aa88c664d5 100644 --- a/src/hooks/useUser.ts +++ b/src/hooks/useUser.ts @@ -2,6 +2,7 @@ import { UserType } from '@server/constants/user'; import type { PermissionCheckOptions } from '@server/lib/permissions'; import { hasPermission, Permission } from '@server/lib/permissions'; import type { NotificationAgentKey } from '@server/lib/settings'; +import { useRouter } from 'next/router'; import type { MutatorCallback } from 'swr'; import useSWR from 'swr'; @@ -56,6 +57,9 @@ export const useUser = ({ id, initialData, }: { id?: number; initialData?: User } = {}): UserHookResponse => { + const router = useRouter(); + const isAuthPage = /^\/(login|setup|resetpassword)/.test(router.pathname); + const { data, error, @@ -63,6 +67,9 @@ export const useUser = ({ } = useSWR(id ? `/api/v1/user/${id}` : `/api/v1/auth/me`, { fallbackData: initialData, refreshInterval: 30000, + revalidateOnFocus: !isAuthPage, + revalidateOnMount: !isAuthPage, + revalidateOnReconnect: !isAuthPage, errorRetryInterval: 30000, shouldRetryOnError: false, }); From 318a0b08ffb6f48097d7e74fd6f336f15593d69f Mon Sep 17 00:00:00 2001 From: fallenbagel <98979876+Fallenbagel@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:39:00 +0800 Subject: [PATCH 2/2] fix: update regex to include resetpassword guid & add missing condition in refreshInterval --- src/hooks/useUser.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/hooks/useUser.ts b/src/hooks/useUser.ts index aa88c664d5..d948f2de85 100644 --- a/src/hooks/useUser.ts +++ b/src/hooks/useUser.ts @@ -58,7 +58,9 @@ export const useUser = ({ initialData, }: { id?: number; initialData?: User } = {}): UserHookResponse => { const router = useRouter(); - const isAuthPage = /^\/(login|setup|resetpassword)/.test(router.pathname); + const isAuthPage = /^\/(login|setup|resetpassword(?:\/|$))/.test( + router.pathname + ); const { data, @@ -66,7 +68,7 @@ export const useUser = ({ mutate: revalidate, } = useSWR(id ? `/api/v1/user/${id}` : `/api/v1/auth/me`, { fallbackData: initialData, - refreshInterval: 30000, + refreshInterval: !isAuthPage ? 30000 : 0, revalidateOnFocus: !isAuthPage, revalidateOnMount: !isAuthPage, revalidateOnReconnect: !isAuthPage,