fix middleware logout
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user