fix middleware logout

This commit is contained in:
2025-04-07 17:13:52 +08:00
parent 8bf6d6e33b
commit c2d372bd7d

View File

@@ -172,7 +172,11 @@ export const middleware = async (req: NextRequest) => {
}
} catch (error) {
console.error("Error validating user:", error);
return setCorsHeaders(unauthorizedResponseValidationUser());
if (!token) {
console.error("Token is undefined");
return setCorsHeaders(unauthorizedResponseToken());
}
return setCorsHeaders(await unauthorizedResponseValidationUser(token, req));
}
}
@@ -253,14 +257,33 @@ function unauthorizedResponseUserNotActive(req: NextRequest) {
);
}
function unauthorizedResponseValidationUser() {
return new NextResponse(
JSON.stringify({ error: "Unauthorized validation user" }),
{
status: 401,
headers: { "Content-Type": "application/json" },
}
async function unauthorizedResponseValidationUser(
token: string,
req: NextRequest
) {
console.log("Token:", token);
const userLogout = await fetch(new URL("/api/auth/logout", req.url), {
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
});
if (userLogout.ok) {
const response = NextResponse.redirect(new URL("/login", req.url));
response.cookies.delete(middlewareConfig.sessionKey);
return setCorsHeaders(response);
}
console.error("Error logging out user:", await userLogout.json());
return setCorsHeaders(
NextResponse.redirect(new URL("/invalid-user", req.url))
);
// return setCorsHeaders(
// new NextResponse(JSON.stringify({ error: "Logout failed" }), {
// status: 500,
// headers: { "Content-Type": "application/json" },
// })
// );
}
function setCorsHeaders(res: NextResponse): NextResponse {