koperasi/services/frontend/app/routes/action.logout.ts
2025-08-08 14:12:40 +07:00

27 lines
751 B
TypeScript

import { type ActionFunction, type LoaderFunction, redirect } from "@remix-run/node";
import { httpClient } from "~/lib/http";
import { authenticator } from "~/sessions/auth.server";
export const loader: LoaderFunction = async ({ request }) => {
const user = await authenticator.isAuthenticated(request);
if (!user) {
return redirect("/auth/login");
}
return null;
};
export const action: ActionFunction = async ({ request }) => {
try {
await httpClient.post("/auth/logout");
httpClient.defaults.headers.common.Authorization = undefined;
} catch (error) {
console.error("Error during API logout:", error);
}
await authenticator.logout(request, { redirectTo: "/auth/login" });
return redirect("/auth/login");
};