wag-frontend-version-3/apicalls/login/logout.tsx

53 lines
1.3 KiB
TypeScript

"use server";
import { fetchDataWithToken } from "../api-fetcher";
import { cookies } from "next/headers";
import { baseUrl } from "../basics";
import { redirect } from "next/navigation";
const logOutEndpoint = `${baseUrl}/authentication/logout`;
const logOutAllEndpoint = `${baseUrl}/authentication/disconnect`;
interface LoginOutUser {
domain: string;
}
async function logoutActiveSession(payload: LoginOutUser) {
const cookieStore = await cookies();
cookieStore.delete("accessToken");
cookieStore.delete("accessObject");
cookieStore.delete("userProfile");
cookieStore.delete("userSelection");
const tokenResponse: any = await fetchDataWithToken(
logOutEndpoint,
{
domain: payload.domain,
},
"POST",
false
);
return tokenResponse.status === 200 ? true : false;
}
async function logoutAllSessions(payload: LoginOutUser) {
const cookieStore = await cookies();
cookieStore.delete("accessToken");
cookieStore.delete("accessObject");
cookieStore.delete("userProfile");
cookieStore.delete("userSelection");
const tokenResponse: any = await fetchDataWithToken(
logOutAllEndpoint,
{
domain: payload.domain,
},
"POST",
false
);
if (tokenResponse.status === 200) {
return true;
}
return false;
}
export { logoutActiveSession, logoutAllSessions };