27 lines
751 B
TypeScript
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");
|
|
};
|