fix: 修复中间件对API POST请求的错误重定向,直接返回401而不是重定向到登录页面
This commit is contained in:
parent
bacac837bd
commit
5e402948a2
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user