23 lines
675 B
TypeScript
23 lines
675 B
TypeScript
import Express from "express";
|
|
import HttpError from "../interfaces/http-error";
|
|
import HttpStatus from "../interfaces/http-status";
|
|
import { keycloakAuth } from "./auth-provider/keycloak";
|
|
|
|
export async function expressAuthentication(
|
|
request: Express.Request,
|
|
securityName: string,
|
|
scopes?: string[],
|
|
) {
|
|
switch (securityName) {
|
|
case "keycloak":
|
|
const authData = await keycloakAuth(request, scopes);
|
|
request.app.locals.logData.sessionId = authData.session_state;
|
|
return authData;
|
|
default:
|
|
throw new HttpError(
|
|
HttpStatus.NOT_IMPLEMENTED,
|
|
"Unknown how to verify identity.",
|
|
"unknowHowToVerify",
|
|
);
|
|
}
|
|
}
|