code-workshop-kit
Version:
The future of remote code workshops & training
34 lines • 1.35 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.jwtMiddleware = void 0;
const esm_1 = __importDefault(require("esm"));
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
const jwtMiddleware = (dir) => {
const esmRequire = esm_1.default(module);
const workshop = esmRequire(`${dir}/cwk.config.js`).default;
return async (ctx, next) => {
await next();
if (ctx.url === '/api/login' && ctx.method === 'POST') {
const providedPassword = ctx.headers['cwk-admin-password'];
if (providedPassword && providedPassword === workshop.adminPassword) {
// Mock user
const username = ctx.headers['cwk-user'];
if (workshop.appKey) {
const token = jsonwebtoken_1.default.sign({ username }, workshop.appKey, { expiresIn: '12h' });
ctx.status = 200;
ctx.body = {
token,
};
}
}
else {
ctx.status = 401;
}
}
};
};
exports.jwtMiddleware = jwtMiddleware;
//# sourceMappingURL=jwt-middleware.js.map