diff --git a/server/routes/logout.ts b/server/routes/logout.ts index 0747014..ebdb18f 100644 --- a/server/routes/logout.ts +++ b/server/routes/logout.ts @@ -1,19 +1,12 @@ -import { H3Event } from 'h3'; - import { userIdentitySchema } from '../schemas'; import { AUTH_PROVIDERS, COOKIE_NAMES } from '~/configs/properties'; import { googleOAuthClient, octokitOAuthApp } from '~/server/services'; import type { UserIdentity } from '~/server/types'; +import { cleanAuth } from '~/server/utils'; import { base64ToString } from '~/utils/converters'; const DEFAULT_LOCATION = '/'; -const clean = (event: H3Event) => { - setResponseHeader(event, 'Authorization', ''); - deleteCookie(event, COOKIE_NAMES.refreshToken); - deleteCookie(event, COOKIE_NAMES.userIdentity); -}; - export default defineEventHandler(async (event) => { const location = getRequestHeader(event, 'Location') ?? DEFAULT_LOCATION; const identityCookie = getCookie(event, COOKIE_NAMES.userIdentity) ?? ''; @@ -22,7 +15,7 @@ export default defineEventHandler(async (event) => { try { identity = userIdentitySchema.parse(JSON.parse(base64ToString(identityCookie))); } catch (error) { - clean(event); + cleanAuth(event); return await sendRedirect(event, location, 302); } @@ -44,7 +37,7 @@ export default defineEventHandler(async (event) => { } } - clean(event); + cleanAuth(event); return await sendRedirect(event, location, 302); }); diff --git a/server/utils/index.ts b/server/utils/index.ts index bb73f9f..1c806ba 100644 --- a/server/utils/index.ts +++ b/server/utils/index.ts @@ -1,3 +1,6 @@ +import { H3Event } from 'h3'; + +import { COOKIE_NAMES } from '~/configs/properties'; import { stringToBase64 } from '~/utils/converters'; export async function fileToDataURI(file: File) { @@ -12,3 +15,9 @@ export async function fileToDataURI(file: File) { return 'data:' + file.type + ';base64,' + base64; } + +export function cleanAuth(event: H3Event): void { + setResponseHeader(event, 'Authorization', ''); + deleteCookie(event, COOKIE_NAMES.refreshToken); + deleteCookie(event, COOKIE_NAMES.userIdentity); +}