fix middleware

This commit is contained in:
2025-04-07 16:36:32 +08:00
parent aa98b154c9
commit 31b459d992

View File

@@ -124,7 +124,7 @@ export const middleware = async (req: NextRequest) => {
if (pathname.startsWith(apiPath)) { if (pathname.startsWith(apiPath)) {
const reqToken = req.headers.get("Authorization")?.split(" ")[1]; const reqToken = req.headers.get("Authorization")?.split(" ")[1];
if (!reqToken) { if (!reqToken) {
return setCorsHeaders(unauthorizedResponse()); return setCorsHeaders(unauthorizedResponseToken());
} }
try { try {
@@ -139,11 +139,11 @@ export const middleware = async (req: NextRequest) => {
); );
if (!validationResponse.ok) { if (!validationResponse.ok) {
return setCorsHeaders(unauthorizedResponse()); return setCorsHeaders(unauthorizedResponseAPI());
} }
} catch (error) { } catch (error) {
console.error("Error validating API request:", error); console.error("Error validating API request:", error);
return setCorsHeaders(unauthorizedResponse()); return setCorsHeaders(unauthorizedResponseValidationAPIRequest());
} }
} }
@@ -164,19 +164,15 @@ export const middleware = async (req: NextRequest) => {
const userValidateJson = await userValidate.json(); const userValidateJson = await userValidate.json();
if (userValidateJson.success == true && !userValidateJson.data) { if (userValidateJson.success == true && !userValidateJson.data) {
return setCorsHeaders( unauthorizedResponseDataUserNotFound(req);
NextResponse.redirect(new URL("/invalid-user", req.url))
);
} }
if (!userValidateJson.data.active) { if (!userValidateJson.data.active) {
return setCorsHeaders( return setCorsHeaders(unauthorizedResponseUserNotActive(req));
NextResponse.redirect(new URL("/waiting-room", req.url))
);
} }
} catch (error) { } catch (error) {
console.error("Error validating user:", error); console.error("Error validating user:", error);
return setCorsHeaders(unauthorizedResponse()); return setCorsHeaders(unauthorizedResponseValidationUser());
} }
} }
@@ -211,13 +207,62 @@ function getToken(req: NextRequest, sessionKey: string): string | undefined {
); );
} }
function unauthorizedResponse(): NextResponse { function unauthorizedResponse() {
return new NextResponse(JSON.stringify({ error: "Unauthorized" }), { return new NextResponse(JSON.stringify({ error: "Unauthorized" }), {
status: 401, status: 401,
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },
}); });
} }
function unauthorizedResponseToken() {
return new NextResponse(JSON.stringify({ error: "Unauthorized token" }), {
status: 401,
headers: { "Content-Type": "application/json" },
});
}
function unauthorizedResponseAPI() {
return new NextResponse(
JSON.stringify({ error: "Unauthorized Response API" }),
{
status: 401,
headers: { "Content-Type": "application/json" },
}
);
}
function unauthorizedResponseValidationAPIRequest() {
return new NextResponse(
JSON.stringify({ error: "Unauthorized validation api request" }),
{
status: 401,
headers: { "Content-Type": "application/json" },
}
);
}
function unauthorizedResponseDataUserNotFound(req: NextRequest) {
return setCorsHeaders(
NextResponse.redirect(new URL("/invalid-user", req.url))
);
}
function unauthorizedResponseUserNotActive(req: NextRequest) {
return setCorsHeaders(
NextResponse.redirect(new URL("/waiting-room", req.url))
);
}
function unauthorizedResponseValidationUser() {
return new NextResponse(
JSON.stringify({ error: "Unauthorized validation user" }),
{
status: 401,
headers: { "Content-Type": "application/json" },
}
);
}
function setCorsHeaders(res: NextResponse): NextResponse { function setCorsHeaders(res: NextResponse): NextResponse {
res.headers.set("Access-Control-Allow-Origin", "*"); res.headers.set("Access-Control-Allow-Origin", "*");
res.headers.set( res.headers.set(