fix ops local admin redirects

This commit is contained in:
2569718930@qq.com
2026-06-14 22:44:02 +08:00
parent 8bbe8f74c1
commit a9e9eed2f1
6 changed files with 119 additions and 2 deletions
+13
View File
@@ -4,6 +4,7 @@ import {
applyAuthResponseCookies,
type BackendHeaderBuildResult,
} from "@/lib/backend-auth";
import { isLocalOpsAccessHost } from "@/lib/ops-local-access";
function hasBearerAuth(request: NextRequest) {
const raw = request.headers.get("authorization");
@@ -12,10 +13,22 @@ function hasBearerAuth(request: NextRequest) {
return parts.length === 2 && parts[0].toLowerCase() === "bearer" && Boolean(parts[1]);
}
function isLocalOpsAccessRequest(request: NextRequest) {
const requestHost =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
request.nextUrl.host;
return (
isLocalOpsAccessHost(requestHost) ||
isLocalOpsAccessHost(request.nextUrl.hostname)
);
}
export function requireOpsProxyAuth(
request: NextRequest,
auth: BackendHeaderBuildResult,
): NextResponse | null {
if (isLocalOpsAccessRequest(request)) return null;
if (auth.authUserId || hasBearerAuth(request)) return null;
return applyAuthResponseCookies(
NextResponse.json(