53 lines
1.3 KiB
TypeScript
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 };
|