jws-backend/src/middlewares/auth.ts
2024-06-25 13:10:42 +07:00

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",
);
}
}