feat(auth): add token verification and cookie helpers

This commit is contained in:
belisards
2026-05-03 16:19:14 -03:00
parent 5596e3fa19
commit f03e7aaf19
2 changed files with 90 additions and 0 deletions

39
lib/auth/cookies.ts Normal file
View File

@@ -0,0 +1,39 @@
export const ADM_COOKIE = 'adm_token';
export const USR_COOKIE = 'usr_token';
export function isSecureCookie(request: { headers: { get(name: string): string | null }; url: string }): boolean {
if (process.env.COOKIE_SECURE !== undefined) {
return process.env.COOKIE_SECURE === 'true';
}
if (process.env.NODE_ENV === 'production') {
return (
request.headers.get('x-forwarded-proto') === 'https' ||
request.url.startsWith('https://')
);
}
return false;
}
export function buildCookie(name: string, value: string, secure: boolean, maxAgeSeconds: number): string {
const parts = [
`${name}=${value}`,
'Path=/',
'HttpOnly',
'SameSite=Lax',
`Max-Age=${maxAgeSeconds}`,
];
if (secure) parts.push('Secure');
return parts.join('; ');
}
export function buildClearCookie(name: string, secure: boolean): string {
const parts = [
`${name}=`,
'Path=/',
'HttpOnly',
'SameSite=Lax',
'Max-Age=0',
];
if (secure) parts.push('Secure');
return parts.join('; ');
}