import crypto from "crypto";
function jwt(info: any, key: string): string {
const headerStr = Buffer.from(JSON.stringify(header)).toString("base64url");
const payloadStr = Buffer.from(JSON.stringify(info)).toString("base64url");
const unsignedToken = `${headerStr}.${payloadStr}`;
const hmac = crypto.createHmac("sha256", key);
hmac.update(unsignedToken);
const signStr = hmac.digest("base64url");
return `${unsignedToken}.${signStr}`;
const result = jwt({ name: "张三", age: 18 }, KEY);
console.log(result); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoi5byg5LiJIiwiYWdlIjoxOH0.Tk8BUtOU485nkD4d4whQwWV9KYF4JCy-RO4pC2M0TSQ