fix:splash 界面重定向界面问题

This commit is contained in:
2026-06-11 16:06:36 +08:00
parent a6bc6941d4
commit e3d549d660
6 changed files with 30 additions and 66 deletions
+3 -15
View File
@@ -23,9 +23,6 @@
* - 函数导出名建议为 `proxy`(可默认导出)。
*
* 用 `src/` 时 proxy 必须放在 `src/` 内(参见 `src-folder.md`)。
*
* DEBUG:每条请求都打日志(`hasSession` / `isAuthOnly` / `isProtected` + 决策),
* 用于排查"进入 /splash 后仍自动跳 /chat"类路由 bug。bug 修完可考虑保留 INFO 级别 + 删 DEBUG。
*/
import { NextResponse } from "next/server";
@@ -45,7 +42,7 @@ const SESSION_COOKIE_NAMES = [
"__Secure-next-auth.session-token",
];
/** proxy 入口日志(Node.js runtime 跑,pino 兼容) */
/** proxy 入口日志(Node.js runtime 跑,pino 兼容)—— 排查 / 监控路由用 */
const log = new Logger("Proxy");
function isAuthOnlyRoute(pathname: string): boolean {
@@ -66,17 +63,9 @@ export function proxy(request: NextRequest) {
const hasSession = SESSION_COOKIE_NAMES.some(
(name) => Boolean(request.cookies.get(name)?.value),
);
const isAuthOnly = isAuthOnlyRoute(pathname);
const isProtected = isProtectedRoute(pathname);
// DEBUG:每条请求都打(区分 path 1=proxy 跳 vs path 2=splash useEffect 跳)
log.info(
{ pathname, hasSession, isAuthOnly, isProtected },
"[proxy] request",
);
// 已登录访问未登录专属页 → /chat
if (hasSession && isAuthOnly) {
if (hasSession && isAuthOnlyRoute(pathname)) {
log.info(
{ pathname, target: ROUTES.chat, reason: "logged-in → auth-only" },
"[proxy] redirect",
@@ -87,7 +76,7 @@ export function proxy(request: NextRequest) {
}
// 未登录访问登录态专属页 → /splash(首界面)
if (!hasSession && isProtected) {
if (!hasSession && isProtectedRoute(pathname)) {
log.info(
{ pathname, target: ROUTES.splash, reason: "not-logged-in → protected" },
"[proxy] redirect",
@@ -97,7 +86,6 @@ export function proxy(request: NextRequest) {
return NextResponse.redirect(url, 308);
}
log.info({ pathname }, "[proxy] pass-through");
return NextResponse.next();
}