@xpresser/events-server
Version:
Xpresser's Official Events Server Plugin.
37 lines (36 loc) • 1.29 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isServerAdmin = void 0;
const AccessDb_1 = require("../src/AccessDb");
const moment_1 = __importDefault(require("moment"));
/**
* Access Middleware
* Restricts access to certain routes.
* @param http
*/
const isServerAdmin = (http) => {
const at = http.req.cookies.at;
const key = at ? `logins.${at}` : "none";
if (!at || !AccessDb_1.accessDb.has(key)) {
return http.redirectToRoute("events-server", [], {
error: "UnAuthorized Access!"
});
}
const token = AccessDb_1.accessDb.get(key);
// check if token has expired.
if ((0, moment_1.default)(token).isBefore()) {
AccessDb_1.accessDb.unset(token);
(0, AccessDb_1.saveAccessDb)();
return http.redirectToRoute("events-server", [], {
error: "Session expired, Re-login required."
});
}
// Add 30 minutes to session
AccessDb_1.accessDb.set(key, (0, moment_1.default)().add(30, "minutes").toDate());
(0, AccessDb_1.saveAccessDb)();
return http.next();
};
exports.isServerAdmin = isServerAdmin;