From e8d6069395934083b2d1d17f49ba21bbb9beeb21 Mon Sep 17 00:00:00 2001 From: twosugar Date: Thu, 6 Aug 2026 17:55:12 +0800 Subject: [PATCH] feat(login): forward invite-code to login redirect (query > cookie) --- docs/.vitepress/theme/utils/navigate.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/.vitepress/theme/utils/navigate.ts b/docs/.vitepress/theme/utils/navigate.ts index a1b0e871..46e26fe8 100644 --- a/docs/.vitepress/theme/utils/navigate.ts +++ b/docs/.vitepress/theme/utils/navigate.ts @@ -1,6 +1,28 @@ import { withQuery } from 'ufo' import { localePath } from './i18n' +const INVITE_CODE_KEY = 'invite-code' + +function readCookie(name: string): string | undefined { + if (typeof document === 'undefined') return undefined + const target = `${name}=` + for (const part of document.cookie.split(';')) { + const trimmed = part.trim() + if (trimmed.startsWith(target)) { + return decodeURIComponent(trimmed.slice(target.length)) + } + } + return undefined +} + +/** 优先读 URL query 的 invite-code,退回 cookie(enhanceApp 里已把 URL 的 invite-code 写入 cookie)。 */ +function resolveInviteCode(): string | undefined { + if (typeof window === 'undefined') return undefined + const fromQuery = new URLSearchParams(window.location.search).get(INVITE_CODE_KEY) + if (fromQuery) return fromQuery + return readCookie(INVITE_CODE_KEY) +} + /** * 生成登录重定向路径 * @param ssoParams 传递给 SSO 页面的额外查询参数 @@ -12,9 +34,12 @@ export function createLoginRedirectPath(ssoParams?: Record