Files
dashboard/backend/src/config/authentik.ts
Matthias Hochmeister 44e22a9fc6 fix authentication
2026-02-27 19:05:18 +01:00

34 lines
1.2 KiB
TypeScript

import environment from './environment';
interface AuthentikConfig {
issuer: string;
clientId: string;
clientSecret: string;
redirectUri: string;
tokenEndpoint: string;
userInfoEndpoint: string;
authorizeEndpoint: string;
logoutEndpoint: string;
}
// Authentik's shared endpoints live at /application/o/, not at the per-app issuer path.
// Issuer example: https://auth.example.com/application/o/myapp/
// Token endpoint: https://auth.example.com/application/o/token/
const issuerUrl = new URL(environment.authentik.issuer);
const pathParts = issuerUrl.pathname.split('/').filter(Boolean);
const basePath = '/' + pathParts.slice(0, -1).join('/') + '/';
const baseEndpoint = `${issuerUrl.origin}${basePath}`;
const authentikConfig: AuthentikConfig = {
issuer: environment.authentik.issuer,
clientId: environment.authentik.clientId,
clientSecret: environment.authentik.clientSecret,
redirectUri: environment.authentik.redirectUri,
tokenEndpoint: `${baseEndpoint}token/`,
userInfoEndpoint: `${baseEndpoint}userinfo/`,
authorizeEndpoint: `${baseEndpoint}authorize/`,
logoutEndpoint: `${baseEndpoint}end-session/`,
};
export default authentikConfig;