diff --git a/middleware.ts b/middleware.ts index f600944..20b9534 100644 --- a/middleware.ts +++ b/middleware.ts @@ -90,6 +90,15 @@ export async function middleware(request: NextRequest) { // 未登录用户只能访问 /login 和 /register if (!token && !["/login", "/register"].includes(pathname)) { + // 对于 API 路由的非 GET 请求,直接返回 401 JSON 响应(不重定向) + if (pathname.startsWith("/api/") && request.method !== "GET") { + return NextResponse.json( + { error: "未授权,请先登录" }, + { status: 401 } + ); + } + + // 对于页面路由(GET 请求),重定向到登录页面 const loginUrl = new URL("/login", externalBase); // 保存当前路径作为回调 URL loginUrl.searchParams.set("callbackUrl", pathname);