Files
mrp/server/src/lib/auth.ts

28 lines
558 B
TypeScript
Raw Normal View History

2026-03-14 14:44:40 -05:00
import type { AuthUser } from "@mrp/shared";
import jwt from "jsonwebtoken";
import { env } from "../config/env.js";
interface AuthTokenPayload {
sub: string;
email: string;
permissions: string[];
}
export function signToken(user: AuthUser) {
return jwt.sign(
{
sub: user.id,
email: user.email,
permissions: user.permissions,
} satisfies AuthTokenPayload,
env.JWT_SECRET,
{ expiresIn: "12h" }
);
}
export function verifyToken(token: string) {
return jwt.verify(token, env.JWT_SECRET) as AuthTokenPayload;
}