Files
litlyx/dashboard/server/AuthManager.ts
2024-10-10 15:49:55 +02:00

40 lines
915 B
TypeScript

import jwt from 'jsonwebtoken';
const { AUTH_JWT_SECRET } = useRuntimeConfig();
function createJwt(data: Object, expiresIn?: string) {
return jwt.sign(data, AUTH_JWT_SECRET, { expiresIn: expiresIn ?? '30d' });
}
function readJwt(data: string) {
try {
return jwt.verify(data, AUTH_JWT_SECRET);
} catch (ex) {
return false;
}
}
export type TUserJwt = {
email: string,
name: string
}
export function readUserJwt(raw: string) {
const data = readJwt(raw);
return data as TUserJwt | undefined;
}
export function createUserJwt(data: TUserJwt) {
return createJwt(data);
}
export function createRegisterJwt(email: string, hashedPassword: string) {
return createJwt({ email, password: hashedPassword }, '7d');
}
export function readRegisterJwt(raw: string) {
const data = readJwt(raw);
return data as { email: string, password: string } | undefined;
}