init: init prok
This commit is contained in:
16
packages/server/src/lib/jwt.ts
Normal file
16
packages/server/src/lib/jwt.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import jwt from "jsonwebtoken";
|
||||
|
||||
const SECRET = process.env.JWT_SECRET || "dev-secret";
|
||||
const EXPIRES_IN = "7d";
|
||||
|
||||
export function signToken(userId: string): string {
|
||||
return jwt.sign({ sub: userId }, SECRET, { expiresIn: EXPIRES_IN });
|
||||
}
|
||||
|
||||
export function verifyToken(token: string): { sub: string } | null {
|
||||
try {
|
||||
return jwt.verify(token, SECRET) as { sub: string };
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
12
packages/server/src/lib/qrcode.ts
Normal file
12
packages/server/src/lib/qrcode.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import QRCode from "qrcode";
|
||||
|
||||
export async function generateQRCodeDataURL(
|
||||
url: string,
|
||||
options?: { width?: number }
|
||||
): Promise<string> {
|
||||
return QRCode.toDataURL(url, {
|
||||
width: options?.width ?? 300,
|
||||
margin: 2,
|
||||
color: { dark: "#1a1a2e", light: "#ffffff" },
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user