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
JavaScript
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;
;