sinka/api/src/auth/cookies.ts
2026-09-15 21:10:42 -03:00

28 lines
853 B
TypeScript

import type { Response } from 'express';
const accessCookie = 'sinka_access';
const refreshCookie = 'sinka_refresh';
function cookieBase() {
return {
httpOnly: true,
sameSite: 'lax' as const,
secure: process.env.NODE_ENV === 'production',
path: '/',
};
}
export function setAuthCookies(res: Response, accessToken: string, refreshToken: string): void {
res.cookie(accessCookie, accessToken, { ...cookieBase(), maxAge: 15 * 60 * 1000 });
res.cookie(refreshCookie, refreshToken, { ...cookieBase(), maxAge: 7 * 24 * 60 * 60 * 1000 });
}
export function clearAuthCookies(res: Response): void {
res.clearCookie(accessCookie, cookieBase());
res.clearCookie(refreshCookie, cookieBase());
}
export function readRefreshCookie(cookies: Record<string, string> | undefined): string | undefined {
return cookies?.[refreshCookie];
}