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) { } catch (error) {
console.error("Error validating user:", 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() { async function unauthorizedResponseValidationUser(
return new NextResponse( token: string,
JSON.stringify({ error: "Unauthorized validation user" }), req: NextRequest
{ ) {
status: 401, console.log("Token:", token);
headers: { "Content-Type": "application/json" }, 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 { function setCorsHeaders(res: NextResponse): NextResponse {