30 lines
606 B
TypeScript
30 lines
606 B
TypeScript
import { init } from "@paralleldrive/cuid2";
|
|
import crypto from "crypto";
|
|
|
|
const id = init({
|
|
length: 15,
|
|
});
|
|
|
|
export function generateId(perfix?: string) {
|
|
return perfix ? perfix + id() : id();
|
|
}
|
|
|
|
export async function generateToken(): Promise<string> {
|
|
return new Promise((resolve, reject) => {
|
|
crypto.generateKey("aes", { length: 256 }, (err, key) => {
|
|
if (err) reject(err);
|
|
resolve(key.export().toString("base64url"));
|
|
});
|
|
});
|
|
}
|
|
|
|
export function generateOTP() {
|
|
let otp = "";
|
|
|
|
for (let i = 0; i < 6; i++) {
|
|
otp += crypto.randomInt(10);
|
|
}
|
|
|
|
return parseInt(otp);
|
|
}
|