UNPKG

@rsksmart/express-did-auth

Version:

Authentication with Verifiable Credentials for Express.js

36 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionManager = void 0; const crypto_1 = require("crypto"); const errors_1 = require("../errors"); const defaults_1 = require("../defaults"); class SessionManager { constructor({ userSessionDuration }, metadata) { this.metadata = metadata; this.sessionDuration = userSessionDuration || defaults_1.USER_SESSION_DURATION; } createRefreshToken() { // invalidates prior token if exists if (this.refreshToken) this.refreshToken = undefined; this.refreshToken = crypto_1.randomBytes(64).toString('hex'); this.expirationDate = Date.now() + this.sessionDuration; return this.refreshToken; } renewRefreshToken(oldToken) { if (!this.refreshToken || !oldToken || oldToken !== this.refreshToken) throw new Error(errors_1.INVALID_REFRESH_TOKEN); if (this.expirationDate < Date.now()) throw new Error(errors_1.INVALID_OR_EXPIRED_SESSION); this.createRefreshToken(); return { refreshToken: this.refreshToken, metadata: this.metadata }; } getCurrentRefreshToken() { return this.refreshToken; } } exports.SessionManager = SessionManager; //# sourceMappingURL=session-manager.js.map