Ported from branch OIDC

This commit is contained in:
chesspro13
2024-09-07 10:21:41 -07:00
parent 1c8cc36402
commit 9c748f326a
22 changed files with 1221 additions and 24 deletions

View File

@@ -9,17 +9,33 @@ import config from "./config.js";
import passwordService from "./encryption/password.js";
import type { NextFunction, Request, Response } from 'express';
import { AppRequest } from '../routes/route-interface.js';
import openID from './open_id.js';
import sql from './sql.js';
import open_id_encryption from './encryption/open_id_encryption.js';
const noAuthentication = config.General && config.General.noAuthentication === true;
function checkAuth(req: AppRequest, res: Response, next: NextFunction) {
if (!sqlInit.isDbInitialized()) {
res.redirect("setup");
}
else if (!req.session.loggedIn && !utils.isElectron() && !noAuthentication) {
res.redirect("login");
}
else {
res.redirect('setup');
} else if (openID.checkOpenIDRequirements()) {
if (
req.oidc.isAuthenticated() &&
open_id_encryption.verifyOpenIDSubjectIdentifier(req.oidc.user?.sub)
) {
req.session.loggedIn = true;
next();
} else {
req.session.loggedIn = false;
res.oidc.login({});
}
} else if (
!req.session.loggedIn &&
!utils.isElectron() &&
!noAuthentication
) {
res.redirect('login');
} else {
next();
}
}