memos/web
Steven 9ecd7b876b fix(web): fix spurious logout on page reload with expired access token
Two bugs caused users to be redirected to /auth too frequently:

1. Race condition in Promise.all([initInstance(), initAuth()]):
   initInstance() makes a gRPC request whose auth interceptor calls
   getAccessToken() synchronously. When the access token was expired,
   getAccessToken() eagerly deleted it from localStorage as a "cleanup"
   side-effect. By the time initAuth() ran and checked hasStoredToken(),
   localStorage was already empty, so it skipped the getCurrentUser()
   call and the token refresh cycle entirely — logging the user out even
   when the refresh-token cookie was still valid. Fix: remove the
   localStorage deletion from getAccessToken(); clearAccessToken()
   (called on confirmed auth failure and logout) handles proper cleanup.

2. React Query retry: 1 caused a second refresh+redirect attempt after
   auth failures. The auth interceptor already handles token refresh and
   request retry internally. If it still throws Unauthenticated, the
   redirect is already in flight — a React Query retry only fires another
   failed refresh and a redundant redirectOnAuthFailure() call. Fix: use
   a shouldRetry function that skips retries for Unauthenticated errors
   while keeping the existing once-retry behaviour for other errors.
2026-02-23 14:08:59 +08:00
..
docs refactor(react-query): optimize config, add error boundary, and remove JSDoc 2025-12-25 08:47:36 +08:00
public chore: enhance site.webmanifest in firefox (#4828) 2025-07-08 19:56:46 +08:00
src fix(web): fix spurious logout on page reload with expired access token 2026-02-23 14:08:59 +08:00
.gitignore chore: update gitignore 2025-04-17 23:11:36 +08:00
biome.json refactor: remove MemoContentContext and integrate MemoViewContext 2025-12-28 12:46:12 +08:00
components.json feat: themes (#4824) 2025-07-07 20:13:22 +08:00
index.html chore: prevent sensitive data caching 2025-12-20 12:33:16 +08:00
package.json fix: KaTeX math rendering with underscores (#5438) 2026-01-06 20:16:01 +08:00
pnpm-lock.yaml fix: KaTeX math rendering with underscores (#5438) 2026-01-06 20:16:01 +08:00
tsconfig.json chore: clean up unused imports and parameters across components 2025-12-27 10:18:38 +08:00
vite.config.mts refactor(web): improve MemoContent security and maintainability 2025-12-02 22:45:22 +08:00