41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
const express = require('express');
|
|
const initTotp = require('./totp');
|
|
const initKeys = require('./keys');
|
|
const initSessionHandlers = require('./session-handlers');
|
|
const initSsoGate = require('./sso-gate');
|
|
|
|
/**
|
|
* Auth routes aggregator
|
|
* Assembles all auth sub-routes with their dependencies
|
|
* @param {Object} ctx - Application context (for backward compatibility)
|
|
* @returns {express.Router}
|
|
*/
|
|
module.exports = function(ctx) {
|
|
const router = express.Router();
|
|
|
|
// Extract dependencies from context
|
|
const deps = {
|
|
authManager: ctx.authManager,
|
|
credentialManager: ctx.credentialManager,
|
|
totpConfig: ctx.totpConfig,
|
|
saveTotpConfig: ctx.saveTotpConfig,
|
|
session: ctx.session,
|
|
asyncHandler: ctx.asyncHandler,
|
|
errorResponse: ctx.errorResponse,
|
|
log: ctx.log,
|
|
// Additional deps for sso-gate
|
|
fetchT: ctx.fetchT,
|
|
getServiceById: ctx.getServiceById,
|
|
licenseManager: ctx.licenseManager,
|
|
servicesStateManager: ctx.servicesStateManager
|
|
};
|
|
|
|
const { getAppSession, appSessionCache } = initSessionHandlers(deps);
|
|
|
|
router.use(initTotp(deps));
|
|
router.use(initKeys(deps));
|
|
router.use(initSsoGate({ ...deps, getAppSession, appSessionCache }));
|
|
|
|
return router;
|
|
};
|