UNPKG

alapa

Version:

A cutting-edge web development framework designed to revolutionize the way developers build modern web applications.

37 lines (36 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JoseJWT = void 0; const jose_1 = require("jose"); const abstract_1 = require("./abstract"); class JoseJWT { key; error; constructor(secret) { this.key = new TextEncoder().encode(secret); } async generateToken(payload, expiresAt) { const expires = (0, abstract_1.generateJWTExpiresDate)(expiresAt); const token = await new jose_1.SignJWT(payload) .setProtectedHeader({ alg: "HS256" }) .setIssuedAt() .setExpirationTime(`${expires.minutes}m`) // Short-lived access token .sign(this.key); return { success: true, token: token.toString(), expiresAt: expires.date, }; } async verifyToken(token) { try { const { payload } = await (0, jose_1.jwtVerify)(token, this.key); return payload; } catch (error) { this.error = error; return false; } } } exports.JoseJWT = JoseJWT;